@@ -9,27 +9,60 @@ template class const_nums<std::complex<float>>;
99
1010// Specialize templates to support double types
1111template <>
12- const_nums<double >::const_nums() : zero( 0.0 ), one( 1.0 ), neg_one(- 1.0 )
12+ const_nums<double >::const_nums()
1313{
14+ base_device::memory::resize_memory_op<double , base_device::DEVICE_CPU>()(
15+ this ->cpu_ctx , this ->zero , 1 );
16+ this ->zero [0 ] = 0.0 ;
17+ base_device::memory::resize_memory_op<double , base_device::DEVICE_CPU>()(
18+ this ->cpu_ctx , this ->one , 1 );
19+ this ->one [0 ] = 1.0 ;
20+ base_device::memory::resize_memory_op<double , base_device::DEVICE_CPU>()(
21+ this ->cpu_ctx , this ->neg_one , 1 );
22+ this ->neg_one [0 ] = -1.0 ;
1423}
1524
1625// Specialize templates to support double types
1726template <>
18- const_nums<float >::const_nums() : zero( 0.0 ), one( 1.0 ), neg_one(- 1.0 )
27+ const_nums<float >::const_nums()
1928{
29+ base_device::memory::resize_memory_op<float , base_device::DEVICE_CPU>()(
30+ this ->cpu_ctx , this ->zero , 1 );
31+ this ->zero [0 ] = 0.0 ;
32+ base_device::memory::resize_memory_op<float , base_device::DEVICE_CPU>()(
33+ this ->cpu_ctx , this ->one , 1 );
34+ this ->one [0 ] = 1.0 ;
35+ base_device::memory::resize_memory_op<float , base_device::DEVICE_CPU>()(
36+ this ->cpu_ctx , this ->neg_one , 1 );
37+ this ->neg_one [0 ] = -1.0 ;
2038}
2139
2240// Specialized templates to support std:: complex<double>types
2341template <>
2442const_nums<std::complex <double >>::const_nums()
25- : zero(std::complex <double >(0.0 , 0.0 )), one(std::complex <double >(1.0 , 0.0 )),
26- neg_one (std::complex <double >(-1.0 , 0.0 ))
2743{
44+ base_device::memory::resize_memory_op<std::complex <double >, base_device::DEVICE_CPU>()(
45+ this ->cpu_ctx , this ->zero , 1 );
46+ this ->zero [0 ] = std::complex <double >(0.0 , 0.0 );
47+ base_device::memory::resize_memory_op<std::complex <double >, base_device::DEVICE_CPU>()(
48+ this ->cpu_ctx , this ->one , 1 );
49+ this ->one [0 ] = std::complex <double >(1.0 , 0.0 );
50+ base_device::memory::resize_memory_op<std::complex <double >, base_device::DEVICE_CPU>()(
51+ this ->cpu_ctx , this ->neg_one , 1 );
52+ this ->neg_one [0 ] = std::complex <double >(-1.0 , 0.0 );
2853}
2954
3055// Specialized templates to support std:: complex<float>types
3156template <>
3257const_nums<std::complex <float >>::const_nums()
33- : zero(std::complex <float >(0.0 , 0.0 )), one(std::complex <float >(1.0 , 0.0 )), neg_one(std::complex <float >(-1.0 , 0.0 ))
3458{
35- }
59+ base_device::memory::resize_memory_op<std::complex <float >, base_device::DEVICE_CPU>()(
60+ this ->cpu_ctx , this ->zero , 1 );
61+ this ->zero [0 ] = std::complex <float >(0.0 , 0.0 );
62+ base_device::memory::resize_memory_op<std::complex <float >, base_device::DEVICE_CPU>()(
63+ this ->cpu_ctx , this ->one , 1 );
64+ this ->one [0 ] = std::complex <float >(1.0 , 0.0 );
65+ base_device::memory::resize_memory_op<std::complex <float >, base_device::DEVICE_CPU>()(
66+ this ->cpu_ctx , this ->neg_one , 1 );
67+ this ->neg_one [0 ] = std::complex <float >(-1.0 , 0.0 );
68+ }
0 commit comments