[ismrmrd] 90/177: Added a couple of helper methods for sizes. Fixed some loop counters to use unsigned ints.
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:02:06 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.
commit 774accfbf359a9100079b68b3ecb6553ec3de45f
Author: Souheil Inati <souheil.inati at nih.gov>
Date: Thu Sep 25 09:35:43 2014 -0400
Added a couple of helper methods for sizes. Fixed some loop counters to use unsigned ints.
---
include/ismrmrd/ismrmrd.h | 4 ++++
libsrc/ismrmrd.cpp | 11 +++++++++++
utilities/generate_cartesian_shepp_logan.cpp | 13 +++++++------
utilities/ismrmrd_phantom.cpp | 4 ++--
4 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/include/ismrmrd/ismrmrd.h b/include/ismrmrd/ismrmrd.h
index ac4624e..09c3aaa 100644
--- a/include/ismrmrd/ismrmrd.h
+++ b/include/ismrmrd/ismrmrd.h
@@ -495,6 +495,10 @@ public:
int32_t (&user_int())[ISMRMRD_USER_INTS];
float (&user_float())[ISMRMRD_USER_FLOATS];
+ // Sizes
+ const size_t getNumberOfDataElements();
+ const size_t getNumberOfTrajElements();
+
// Header, data and trajectory accessors
AcquisitionHeader &getHead();
void setHead(const AcquisitionHeader other);
diff --git a/libsrc/ismrmrd.cpp b/libsrc/ismrmrd.cpp
index 6b0a6b9..cfefd8d 100644
--- a/libsrc/ismrmrd.cpp
+++ b/libsrc/ismrmrd.cpp
@@ -215,6 +215,17 @@ float (&Acquisition::user_float()) [ISMRMRD_USER_FLOATS] {
return head.user_float;
}
+// Sizes
+const size_t Acquisition::getNumberOfDataElements() {
+ size_t num = head.number_of_samples * head.active_channels;
+ return num;
+}
+
+const size_t Acquisition::getNumberOfTrajElements() {
+ size_t num = head.number_of_samples * head.trajectory_dimensions;
+ return num;
+}
+
// Data and Trajectory accessors
AcquisitionHeader & Acquisition::getHead() {
// This returns a reference
diff --git a/utilities/generate_cartesian_shepp_logan.cpp b/utilities/generate_cartesian_shepp_logan.cpp
index 975bdb5..6308065 100644
--- a/utilities/generate_cartesian_shepp_logan.cpp
+++ b/utilities/generate_cartesian_shepp_logan.cpp
@@ -101,7 +101,7 @@ int main(int argc, char** argv)
if (noise_calibration) {
acq.setFlag(ISMRMRD_ACQ_IS_NOISE_MEASUREMENT);
acq.number_of_samples(readout);
- for (uint64_t s = 0; s < acq.number_of_samples()*acq.active_channels(); s++) {
+ for (size_t s = 0; s < acq.getNumberOfDataElements(); s++) {
acq.getData()[s] = 0.0;
}
add_noise(acq,noise_level);
@@ -109,20 +109,21 @@ int main(int argc, char** argv)
d.appendAcquisition(acq);
}
- //NDArray<complex_float_t> cm(dims);
+ NDArray<complex_float_t> cm(dims);
std::cout << "FFT number 0" << std::endl;
for (unsigned int r = 0; r < repetitions; r++) {
for (unsigned int a = 0; a < acc_factor; a++) {
//for (size_t n=0; n<coil_images.getNumberOfElements(); n++) {
// cm.getData()[n] = coil_images.getData()[n];
//}
- NDArray<complex_float_t> cm = coil_images;
+ //NDArray<complex_float_t> cm = coil_images;
+ cm = coil_images;
fft2c(cm);
std::cout << "FFT number 1" << std::endl;
add_noise(cm,noise_level);
- for (int i = a; i < matrix_size; i+=acc_factor) {
+ for (size_t i = a; i < matrix_size; i+=acc_factor) {
acq.clearAllFlags();
acq.number_of_samples(readout);
@@ -136,7 +137,7 @@ int main(int argc, char** argv)
acq.idx().kspace_encode_step_1 = i;
acq.idx().repetition = r*acc_factor + a;
acq.sample_time_us() = 5.0;
- for (unsigned int c = 0; c < ncoils; c++) {
+ for (size_t c = 0; c < ncoils; c++) {
memcpy(&(acq.getData()[c*readout]),
&(cm.getData()[c*matrix_size*readout + i*readout]),
sizeof(complex_float_t)*readout);
@@ -145,7 +146,7 @@ int main(int argc, char** argv)
if (store_coordinates) {
acq.trajectory_dimensions(2);
float ky = (1.0*i-(matrix_size>>1))/(1.0*matrix_size);
- for (int x = 0; x < readout; x++) {
+ for (size_t x = 0; x < readout; x++) {
float kx = (1.0*x-(readout>>1))/(1.0*readout);
acq.getTraj()[x*2 ] = kx;
acq.getTraj()[x*2+1] = ky;
diff --git a/utilities/ismrmrd_phantom.cpp b/utilities/ismrmrd_phantom.cpp
index dd9250c..afa98de 100644
--- a/utilities/ismrmrd_phantom.cpp
+++ b/utilities/ismrmrd_phantom.cpp
@@ -83,7 +83,7 @@ boost::shared_ptr<NDArray<complex_float_t> > generate_birdcage_sensititivies(uns
boost::shared_ptr<NDArray<complex_float_t> > out(new NDArray<complex_float_t>(dims));
memset(out->getData(), 0, out->getDataSize());
- for (int c = 0; c < ncoils; c++) {
+ for (unsigned int c = 0; c < ncoils; c++) {
float coilx = relative_radius*std::cos(c*(2*3.14159265359/ncoils));
float coily = relative_radius*std::sin(c*(2*3.14159265359/ncoils));
float coil_phase = -c*(2*3.14159265359/ncoils);
@@ -130,7 +130,7 @@ int add_noise(Acquisition& a, float sd)
boost::variate_generator<boost::mt19937&,
boost::normal_distribution<float> > var_nor(get_noise_seed(), nd);
- for (size_t i = 0; i < a.number_of_samples()*a.active_channels(); i++) {
+ for (size_t i = 0; i < a.getNumberOfDataElements(); i++) {
a.getData()[i] += std::complex<float>(var_nor(), var_nor());
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git
More information about the debian-science-commits
mailing list