mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-21 11:03:29 +01:00
Removed IPP dependency with intel using C quicksort
This commit is contained in:
parent
7cd6b13805
commit
f168b885db
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpiifort -fpic
|
FC : mpiifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpiifort -fpic
|
FC : mpiifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpiifort -fpic
|
FC : mpiifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=64 -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=64 -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpiifort -fpic
|
FC : mpiifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpiifort -fpic
|
FC : mpiifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 -DINTEL
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : mpiifort -fpic
|
FC : mpiifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DINTEL
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=64 -DINTEL
|
IRPF90_FLAGS : --ninja --align=64 -DINTEL
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ function run_stoch() {
|
|||||||
@test "H2O2" { # 12.9214s
|
@test "H2O2" { # 12.9214s
|
||||||
qp set_file h2o2.ezfio
|
qp set_file h2o2.ezfio
|
||||||
qp set_mo_class --core="[1-2]" --act="[3-24]" --del="[25-38]"
|
qp set_mo_class --core="[1-2]" --act="[3-24]" --del="[25-38]"
|
||||||
run -151.005848404095 1.e-3 100000
|
run -151.005848404095 2.e-3 100000
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "HBO" { # 13.3144s
|
@test "HBO" { # 13.3144s
|
||||||
|
@ -9,14 +9,14 @@ struct int16_t_comp {
|
|||||||
|
|
||||||
int compare_int16_t( const void * l, const void * r )
|
int compare_int16_t( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct int16_t_comp * restrict _l= l;
|
const int16_t * restrict _l= l;
|
||||||
const struct int16_t_comp * restrict _r= r;
|
const int16_t * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_int16_t(int16_t* A_in, int32_t* iorder, int32_t isize) {
|
void qsort_int16_t(int16_t* restrict A_in, int32_t* restrict iorder, int32_t isize) {
|
||||||
struct int16_t_comp* A = malloc(isize * sizeof(struct int16_t_comp));
|
struct int16_t_comp* A = malloc(isize * sizeof(struct int16_t_comp));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -46,14 +46,14 @@ struct int16_t_comp_big {
|
|||||||
|
|
||||||
int compare_int16_t_big( const void * l, const void * r )
|
int compare_int16_t_big( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct int16_t_comp_big * restrict _l= l;
|
const int16_t * restrict _l= l;
|
||||||
const struct int16_t_comp_big * restrict _r= r;
|
const int16_t * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_int16_t_big(int16_t* A_in, int64_t* iorder, int64_t isize) {
|
void qsort_int16_t_big(int16_t* restrict A_in, int64_t* restrict iorder, int64_t isize) {
|
||||||
struct int16_t_comp_big* A = malloc(isize * sizeof(struct int16_t_comp_big));
|
struct int16_t_comp_big* A = malloc(isize * sizeof(struct int16_t_comp_big));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -83,14 +83,14 @@ struct int32_t_comp {
|
|||||||
|
|
||||||
int compare_int32_t( const void * l, const void * r )
|
int compare_int32_t( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct int32_t_comp * restrict _l= l;
|
const int32_t * restrict _l= l;
|
||||||
const struct int32_t_comp * restrict _r= r;
|
const int32_t * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_int32_t(int32_t* A_in, int32_t* iorder, int32_t isize) {
|
void qsort_int32_t(int32_t* restrict A_in, int32_t* restrict iorder, int32_t isize) {
|
||||||
struct int32_t_comp* A = malloc(isize * sizeof(struct int32_t_comp));
|
struct int32_t_comp* A = malloc(isize * sizeof(struct int32_t_comp));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -120,14 +120,14 @@ struct int32_t_comp_big {
|
|||||||
|
|
||||||
int compare_int32_t_big( const void * l, const void * r )
|
int compare_int32_t_big( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct int32_t_comp_big * restrict _l= l;
|
const int32_t * restrict _l= l;
|
||||||
const struct int32_t_comp_big * restrict _r= r;
|
const int32_t * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_int32_t_big(int32_t* A_in, int64_t* iorder, int64_t isize) {
|
void qsort_int32_t_big(int32_t* restrict A_in, int64_t* restrict iorder, int64_t isize) {
|
||||||
struct int32_t_comp_big* A = malloc(isize * sizeof(struct int32_t_comp_big));
|
struct int32_t_comp_big* A = malloc(isize * sizeof(struct int32_t_comp_big));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -157,14 +157,14 @@ struct int64_t_comp {
|
|||||||
|
|
||||||
int compare_int64_t( const void * l, const void * r )
|
int compare_int64_t( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct int64_t_comp * restrict _l= l;
|
const int64_t * restrict _l= l;
|
||||||
const struct int64_t_comp * restrict _r= r;
|
const int64_t * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_int64_t(int64_t* A_in, int32_t* iorder, int32_t isize) {
|
void qsort_int64_t(int64_t* restrict A_in, int32_t* restrict iorder, int32_t isize) {
|
||||||
struct int64_t_comp* A = malloc(isize * sizeof(struct int64_t_comp));
|
struct int64_t_comp* A = malloc(isize * sizeof(struct int64_t_comp));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -194,14 +194,14 @@ struct int64_t_comp_big {
|
|||||||
|
|
||||||
int compare_int64_t_big( const void * l, const void * r )
|
int compare_int64_t_big( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct int64_t_comp_big * restrict _l= l;
|
const int64_t * restrict _l= l;
|
||||||
const struct int64_t_comp_big * restrict _r= r;
|
const int64_t * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_int64_t_big(int64_t* A_in, int64_t* iorder, int64_t isize) {
|
void qsort_int64_t_big(int64_t* restrict A_in, int64_t* restrict iorder, int64_t isize) {
|
||||||
struct int64_t_comp_big* A = malloc(isize * sizeof(struct int64_t_comp_big));
|
struct int64_t_comp_big* A = malloc(isize * sizeof(struct int64_t_comp_big));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -231,14 +231,14 @@ struct double_comp {
|
|||||||
|
|
||||||
int compare_double( const void * l, const void * r )
|
int compare_double( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct double_comp * restrict _l= l;
|
const double * restrict _l= l;
|
||||||
const struct double_comp * restrict _r= r;
|
const double * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_double(double* A_in, int32_t* iorder, int32_t isize) {
|
void qsort_double(double* restrict A_in, int32_t* restrict iorder, int32_t isize) {
|
||||||
struct double_comp* A = malloc(isize * sizeof(struct double_comp));
|
struct double_comp* A = malloc(isize * sizeof(struct double_comp));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -268,14 +268,14 @@ struct double_comp_big {
|
|||||||
|
|
||||||
int compare_double_big( const void * l, const void * r )
|
int compare_double_big( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct double_comp_big * restrict _l= l;
|
const double * restrict _l= l;
|
||||||
const struct double_comp_big * restrict _r= r;
|
const double * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_double_big(double* A_in, int64_t* iorder, int64_t isize) {
|
void qsort_double_big(double* restrict A_in, int64_t* restrict iorder, int64_t isize) {
|
||||||
struct double_comp_big* A = malloc(isize * sizeof(struct double_comp_big));
|
struct double_comp_big* A = malloc(isize * sizeof(struct double_comp_big));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -305,14 +305,14 @@ struct float_comp {
|
|||||||
|
|
||||||
int compare_float( const void * l, const void * r )
|
int compare_float( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct float_comp * restrict _l= l;
|
const float * restrict _l= l;
|
||||||
const struct float_comp * restrict _r= r;
|
const float * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_float(float* A_in, int32_t* iorder, int32_t isize) {
|
void qsort_float(float* restrict A_in, int32_t* restrict iorder, int32_t isize) {
|
||||||
struct float_comp* A = malloc(isize * sizeof(struct float_comp));
|
struct float_comp* A = malloc(isize * sizeof(struct float_comp));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
@ -342,14 +342,14 @@ struct float_comp_big {
|
|||||||
|
|
||||||
int compare_float_big( const void * l, const void * r )
|
int compare_float_big( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct float_comp_big * restrict _l= l;
|
const float * restrict _l= l;
|
||||||
const struct float_comp_big * restrict _r= r;
|
const float * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_float_big(float* A_in, int64_t* iorder, int64_t isize) {
|
void qsort_float_big(float* restrict A_in, int64_t* restrict iorder, int64_t isize) {
|
||||||
struct float_comp_big* A = malloc(isize * sizeof(struct float_comp_big));
|
struct float_comp_big* A = malloc(isize * sizeof(struct float_comp_big));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
|
@ -11,14 +11,14 @@ struct TYPE_comp_big {
|
|||||||
|
|
||||||
int compare_TYPE_big( const void * l, const void * r )
|
int compare_TYPE_big( const void * l, const void * r )
|
||||||
{
|
{
|
||||||
const struct TYPE_comp_big * restrict _l= l;
|
const TYPE * restrict _l= l;
|
||||||
const struct TYPE_comp_big * restrict _r= r;
|
const TYPE * restrict _r= r;
|
||||||
if( _l->x > _r->x ) return 1;
|
if( *_l > *_r ) return 1;
|
||||||
if( _l->x < _r->x ) return -1;
|
if( *_l < *_r ) return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qsort_TYPE_big(TYPE* A_in, int32_t* iorder, int32_t isize) {
|
void qsort_TYPE_big(TYPE* restrict A_in, int32_t* restrict iorder, int32_t isize) {
|
||||||
struct TYPE_comp_big* A = malloc(isize * sizeof(struct TYPE_comp_big));
|
struct TYPE_comp_big* A = malloc(isize * sizeof(struct TYPE_comp_big));
|
||||||
if (A == NULL) return;
|
if (A == NULL) return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user