30 #ifndef XGADGETRON_UTILITIES
31 #define XGADGETRON_UTILITIES
38 #include "sirf/Gadgetron/cgadgetron_shared_ptr.h"
44 static long long milliseconds()
46 auto now = std::chrono::system_clock::now();
47 auto ms = std::chrono::duration_cast < std::chrono::milliseconds >
48 (now.time_since_epoch());
49 return (
long long)ms.count();
51 static std::string scratch_file_name()
55 long long int ms = xGadgetronUtilities::milliseconds();
58 sprintf_s(buff, 128,
"tmp_%d_%lld.h5", calls, ms);
60 sprintf(buff,
"tmp_%d_%lld.h5", calls, ms);
62 return std::string(buff);
65 static void convert_complex(std::complex<T> z,
unsigned short& t)
67 t = (
unsigned short)z.real();
70 static void convert_complex(std::complex<T> z,
short& t)
75 static void convert_complex(std::complex<T> z,
unsigned int& t)
77 t = (
unsigned int)z.real();
80 static void convert_complex(std::complex<T> z,
int& t)
85 static void convert_complex(std::complex<T> z,
float& t)
90 static void convert_complex(std::complex<T> z, complex_float_t& t)
92 t = (complex_float_t)z;
95 static void convert_complex(std::complex<T> z,
double& t)
100 static void convert_complex(std::complex<T> z, complex_double_t& t)
102 t = (complex_double_t)z;
113 std::mutex& operator()()
115 return *sptr_mutex_.get();
117 gadgetron::shared_ptr<std::mutex> sptr()
127 sptr_mutex_->unlock();
130 static gadgetron::shared_ptr<std::mutex> sptr_mutex_;
133 static bool initialized =
false;
135 sptr_mutex_ = gadgetron::shared_ptr<std::mutex>(
new std::mutex);
Definition: xgadgetron_utilities.h:107
Definition: xgadgetron_utilities.h:42
Abstract data container.
Definition: GeometricalInfo.cpp:141