static void real_to_normal(double *fc3_normal_squared, const double *freqs0, const double *freqs1, const double *freqs2, const lapack_complex_double *eigvecs0, const lapack_complex_double *eigvecs1, const lapack_complex_double *eigvecs2, const Darray *fc3, const int *atc, //atom triplet cut off const int *atc_rec, const char* g_skip, const double q[9], /* q0, q1, q2 */ const Darray *shortest_vectors, const Iarray *multiplicity, const double *masses, const int *p2s_map, const int *s2p_map, const int *band_indices, const int num_band0, const int num_band, const int pos_band0, const double cutoff_frequency, const double cutoff_hfrequency, const double cutoff_delta) { int num_patom; lapack_complex_double *fc3_reciprocal; num_patom = num_band / 3; fc3_reciprocal = (lapack_complex_double*)malloc(sizeof(lapack_complex_double) * num_patom * num_patom * num_patom * 27); real_to_reciprocal(fc3_reciprocal, q, fc3, atc, shortest_vectors, multiplicity, p2s_map, s2p_map); reciprocal_to_normal(fc3_normal_squared, fc3_reciprocal, atc_rec, freqs0, freqs1, freqs2, eigvecs0, eigvecs1, eigvecs2, masses, band_indices, num_band0, num_band, pos_band0, g_skip, cutoff_frequency, cutoff_hfrequency, cutoff_delta); free(fc3_reciprocal); }
static void real_to_normal(double *fc3_normal_squared, const char* g_zero, const double *freqs0, const double *freqs1, const double *freqs2, const lapack_complex_double *eigvecs0, const lapack_complex_double *eigvecs1, const lapack_complex_double *eigvecs2, const Darray *fc3, const double q[9], /* q0, q1, q2 */ const Darray *shortest_vectors, const Iarray *multiplicity, const double *masses, const int *p2s_map, const int *s2p_map, const int *band_indices, const int num_band0, const int num_band, const double cutoff_frequency, const int triplet_index, const int num_triplets, const int openmp_at_bands) { int num_patom; lapack_complex_double *fc3_reciprocal; num_patom = num_band / 3; fc3_reciprocal = (lapack_complex_double*)malloc(sizeof(lapack_complex_double) * num_patom * num_patom * num_patom * 27); real_to_reciprocal(fc3_reciprocal, q, fc3, shortest_vectors, multiplicity, p2s_map, s2p_map, openmp_at_bands); if (openmp_at_bands) { #ifdef MEASURE_R2N printf("At triplet %d/%d (# of bands=%d):\n", triplet_index, num_triplets, num_band0); #endif reciprocal_to_normal_squared_openmp(fc3_normal_squared, g_zero, fc3_reciprocal, freqs0, freqs1, freqs2, eigvecs0, eigvecs1, eigvecs2, masses, band_indices, num_band0, num_band, cutoff_frequency); } else { reciprocal_to_normal_squared(fc3_normal_squared, g_zero, fc3_reciprocal, freqs0, freqs1, freqs2, eigvecs0, eigvecs1, eigvecs2, masses, band_indices, num_band0, num_band, cutoff_frequency); } free(fc3_reciprocal); }