MCPcopy Create free account
hub / github.com/SINGROUP/dscribe / getFlir

Function getFlir

dscribe/ext/soapGeneral.cpp:1568–1601  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1566 return make_pair(iNeighbour, iCenter);
1567}
1568double* getFlir(double* oO4arri,double* ri, double* minExp, double* pluExp, int icount, int rsize, int lMax)
1569{
1570 double* Flir = (double*) malloc(sd*(lMax+1)*icount*rsize);
1571 //l=0
1572 for (int i = 0; i < icount; i++) {
1573 for (int w = 0; w < rsize; w++) {
1574 Flir[rsize*i + w] = oO4arri[rsize*i + w]*(minExp[rsize*i + w] - pluExp[rsize*i + w]);
1575 }
1576 }
1577 //l=1
1578 if (lMax>0) {
1579 for (int i = 0; i < icount; i++) {
1580 for (int w = 0; w < rsize; w++) {
1581 Flir[rsize*icount + rsize*i + w] = oO4arri[rsize*i + w]*(minExp[rsize*i + w] + pluExp[rsize*i + w] - 2*Flir[rsize*i + w]);
1582 }
1583 }
1584 }
1585 //l>1
1586 if (lMax>1) {
1587 for (int l = 2; l < lMax+1; l++){
1588 for (int i = 0; i < icount; i++){
1589 for (int w = 0; w < rsize; w++){
1590 Flir[l*rsize*icount+rsize*i+w] = Flir[(l-2)*rsize*icount+rsize*i+w] - oO4arri[rsize*i+w]*(4*l-2)*Flir[(l-1)*rsize*icount+rsize*i+w] ;
1591 // Very Important!!!
1592 if (Flir[l*rsize*icount+rsize*i+w] < 0) {
1593 Flir[l*rsize*icount+rsize*i+w] = 0.0;
1594 }
1595 }
1596 }
1597 }
1598 }
1599
1600 return Flir;
1601}
1602double legendre_poly(int l, int m, double x)
1603{
1604 double fact,pll,pmm,pmmp1,somx2;

Callers 1

soapGeneralFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected