147 {
148
149 resBasisNum = basisNum;
150 coeff = {0.0, 0.0};
151 int Digit1, Digit2;
152
155 resBasisNum = basisNum;
156 if(opNum == 0) { coeff = 1.0 / RealType(sqrt(RealType(this->
baseSpace().
dim()))); }
157 else if(opNum == 1 && this->
baseSpace().
dim() % 2 == 0) {
158 coeff = (basisNum % 2 == 0 ? 1.0 : -1.0)
160 }
161 else {
162 coeff = sin(M_PI
163 * (2 * (opNum / 2) * basisNum / RealType(this->
baseSpace().
dim())
164 + (opNum % 2) / 2.0))
165 / RealType(sqrt(RealType(this->
baseSpace().
dim()) / 2.0));
166 ;
167 }
168 }
172 Digit1 = int(sqrt(RealType(2 * opNum) + 0.25) + 0.5);
173 Digit2 = opNum - Digit1 * (Digit1 - 1) / 2;
174 if(Digit1 == basisNum) {
175 resBasisNum = Digit2;
177 }
178 else if(Digit2 == basisNum) {
179 resBasisNum = Digit1;
181 }
182 }
186 Digit1 = int(sqrt(RealType(2 * opNum) + 0.25) + 0.5);
187 Digit2 = opNum - Digit1 * (Digit1 - 1) / 2;
188 if(Digit1 == basisNum) {
189 resBasisNum = Digit2;
191 }
192 else if(Digit2 == basisNum) {
193 resBasisNum = Digit1;
195 }
196 }
197 else {
198
199 #ifndef __CUDA_ARCH__
200 std::cerr << "Error: " << __PRETTY_FUNCTION__ << "\n\t"
201 << " opNum(" << opNum << ") must be less than "
203 std::exit(EXIT_FAILURE);
204 #endif
205
206 }
207 return;
208 };
Definition mytypes.hpp:147
__host__ __device__ int dim() const
Definition OperatorSpace.hpp:75
__host__ __device__ BaseSpace const & baseSpace() const
Definition OperatorSpace.hpp:79