Example #1
0
void AO2MOtranse1_nr_s2ij(int (*fmmm)(), int row_id,
                          double *vout, double *vin, double *buf,
                          struct _AO2MOEnvs *envs)
{
        int nao = envs->nao;
        size_t ij_pair = (*fmmm)(NULL, NULL, buf, envs, OUTPUTIJ);
        size_t nao2 = nao*(nao+1)/2;
        NPdunpack_tril(nao, vin+nao2*row_id, buf, 0);
        (*fmmm)(vout+ij_pair*row_id, buf, buf+nao*nao, envs, 0);
}
Example #2
0
void AO2MOtranse1_nr_s2ij(int (*fmmm)(),
                          double *vout, double *vin, int row_id,
                          struct _AO2MOEnvs *envs)
{
        int nao = envs->nao;
        size_t ij_pair = (*fmmm)(NULL, NULL, envs, 1);
        size_t nao2 = nao*(nao+1)/2;
        double *buf = malloc(sizeof(double) * nao*nao);
        NPdunpack_tril(nao, vin+nao2*row_id, buf, 0);
        (*fmmm)(vout+ij_pair*row_id, buf, envs, 0);
        free(buf);
}