QPMS
Electromagnetic multiple scattering library and toolkit.
symmetries.h
Go to the documentation of this file.
1 
22 #ifndef SYMMETRIES_H
23 #define SYMMETRIES_H
24 #include "qpms_types.h"
25 #include <cblas.h>
26 
28 complex double *qpms_zflip_uvswi_dense(
29  complex double *target,
30  const qpms_vswf_set_spec_t *bspec);
32 complex double *qpms_yflip_uvswi_dense(
33  complex double *target,
34  const qpms_vswf_set_spec_t *bspec);
36 complex double *qpms_xflip_uvswi_dense(
37  complex double *target,
38  const qpms_vswf_set_spec_t *bspec);
40 complex double *qpms_zrot_uvswi_dense(
41  complex double *target,
42  const qpms_vswf_set_spec_t *bspec,
43  double phi
44  );
46 
48 complex double *qpms_zrot_rational_uvswi_dense(
49  complex double *target,
50  const qpms_vswf_set_spec_t *bspec,
51  int N,
52  int w
53  );
54 
56 complex double *qpms_irot3_uvswfi_dense(
57  complex double *target,
58  const qpms_vswf_set_spec_t *bspec,
59  const qpms_irot3_t transf);
60 
61 // Some auxilliary functions for "numerical cleaning" of the roundoff error
62 
64 
70 size_t qpms_zero_roundoff_clean(double *arr, size_t nmemb, double atol);
71 
73 
77 size_t qpms_czero_roundoff_clean(complex double *arr, size_t nmemb, double atol);
78 #endif // SYMMETRIES_H
Common qpms types.
3D improper rotations represented as a quaternion and a sign of the determinant.
Definition: qpms_types.h:275
Specifies a finite set of VSWFs.
Definition: qpms_types.h:290
complex double * qpms_yflip_uvswi_dense(complex double *target, const qpms_vswf_set_spec_t *bspec)
Dense matrix representation of the y coordinate sign flip operation (xz-plane mirroring).
Definition: symmetries.c:76
size_t qpms_zero_roundoff_clean(double *arr, size_t nmemb, double atol)
Cleans the roundoff error of an array.
Definition: symmetries.c:228
complex double * qpms_zrot_uvswi_dense(complex double *target, const qpms_vswf_set_spec_t *bspec, double phi)
Dense matrix representation of a rotation around the z-axis.
Definition: symmetries.c:151
complex double * qpms_zflip_uvswi_dense(complex double *target, const qpms_vswf_set_spec_t *bspec)
Dense matrix representation of the z coordinate sign flip operation (xy-plane mirroring).
Definition: symmetries.c:40
complex double * qpms_irot3_uvswfi_dense(complex double *target, const qpms_vswf_set_spec_t *bspec, const qpms_irot3_t transf)
Dense matrix (uvswi-indexed) representation of any O(3) transformation.
Definition: symmetries.c:195
complex double * qpms_zrot_rational_uvswi_dense(complex double *target, const qpms_vswf_set_spec_t *bspec, int N, int w)
Dense matrix representation of a "rational" rotation around the z-axis.
Definition: symmetries.c:184
size_t qpms_czero_roundoff_clean(complex double *arr, size_t nmemb, double atol)
Cleans the roundoff error of an array.
Definition: symmetries.c:238
complex double * qpms_xflip_uvswi_dense(complex double *target, const qpms_vswf_set_spec_t *bspec)
Dense matrix representation of the x coordinate sign flip operation (yz-plane mirroring).
Definition: symmetries.c:113