39 template<
class T>
class Array;
40 template<
class Num_T>
class Mat;
41 template<
class Num_T>
class Vec;
142 template<
class T>
inline
145 void *p =
operator new(
sizeof(T) * n);
146 ptr =
reinterpret_cast<T*
>(p);
147 for (
int i = 0; i < n; i++) {
158 void *p =
operator new(
sizeof(
unsigned char) * n);
159 ptr =
reinterpret_cast<unsigned char*
>(p);
166 void *p =
operator new(
sizeof(
bin) * n);
167 ptr =
reinterpret_cast<bin*
>(p);
174 void *p =
operator new(
sizeof(
short int) * n);
175 ptr =
reinterpret_cast<short int*
>(p);
182 void *p =
operator new(
sizeof(int) * n);
183 ptr =
reinterpret_cast<int*
>(p);
190 void *p0 =
operator new(
sizeof(double) * n + 16);
191 void *p1 =
reinterpret_cast<void*
>((
reinterpret_cast<std::size_t
>(p0) + 16)
192 & (~(std::size_t(15))));
193 *(
reinterpret_cast<void**
>(p1) - 1) = p0;
194 ptr =
reinterpret_cast<double*
>(p1);
199 void create_elements<std::complex<double> >(std::complex<double>* &ptr,
202 void *p0 =
operator new(
sizeof(std::complex<double>) * n + 16);
203 void *p1 =
reinterpret_cast<void*
>((
reinterpret_cast<std::size_t
>(p0) + 16)
204 & (~(std::size_t(15))));
205 *(
reinterpret_cast<void**
>(p1) - 1) = p0;
206 ptr =
reinterpret_cast<std::complex<double>*
>(p1);
212 template<
class T>
inline
216 for (
int i = 0; i < n; ++i) {
219 void *p =
reinterpret_cast<void*
>(ptr);
230 void *p =
reinterpret_cast<void*
>(ptr);
241 void *p =
reinterpret_cast<void*
>(ptr);
251 void *p =
reinterpret_cast<void*
>(ptr);
262 void *p =
reinterpret_cast<void*
>(ptr);
273 void *p = *(
reinterpret_cast<void**
>(ptr) - 1);
281 void destroy_elements<std::complex<double> >(std::complex<double>* &ptr, int)
284 void *p = *(
reinterpret_cast<void**
>(ptr) - 1);
295 void *p =
operator new(
sizeof(
Array<T>) * n);
296 ptr =
reinterpret_cast<Array<T>*
>(p);
297 for (
int i = 0; i < n; ++i) {
306 void *p =
operator new(
sizeof(
Mat<T>) * n);
307 ptr =
reinterpret_cast<Mat<T>*
>(p);
308 for (
int i = 0; i < n; ++i) {
317 void *p =
operator new(
sizeof(
Vec<T>) * n);
318 ptr =
reinterpret_cast<Vec<T>*
>(p);
319 for (
int i = 0; i < n; ++i) {
326 #endif // #ifndef FACTORY_H