Changeset 4962519 in sasmodels


Ignore:
Timestamp:
Oct 14, 2016 6:49:58 PM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
14838a3
Parents:
a5b6997
Message:

use square and cube instead of pow()

Location:
sasmodels/models
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/bcc_paracrystal.c

    r0b717c5 r4962519  
    3333 
    3434        const double temp10 = exp((-1.0/8.0)*temp1*(temp7*temp7 + temp8*temp8 + temp9*temp9)); 
    35         result = pow(1.0-(temp10*temp10),3)*temp6 
     35        result = cube(1.0 - (temp10*temp10))*temp6 
    3636            / ( (1.0 - 2.0*temp10*cos(0.5*temp3*temp7) + temp10*temp10) 
    3737              * (1.0 - 2.0*temp10*cos(0.5*temp3*temp8) + temp10*temp10) 
  • sasmodels/models/core_shell_sphere.py

    r9a4811a r4962519  
    9595    """ 
    9696    return (1, 1) 
    97     whole = 4.0 * pi / 3.0 * pow((radius + thickness), 3) 
    98     core = 4.0 * pi / 3.0 * radius * radius * radius 
     97    whole = 4.0/3.0 * pi * (radius + thickness)**3 
     98    core = 4.0/3.0 * pi * radius**3 
    9999    return whole, whole - core 
    100100 
  • sasmodels/models/dab.py

    ra807206 r4962519  
    5959 
    6060Iq = """ 
    61     double numerator   = pow(cor_length, 3); 
    62     double denominator = pow(1 + pow(q*cor_length,2), 2); 
     61    double numerator   = cube(cor_length); 
     62    double denominator = square(1 + square(q*cor_length)); 
    6363     
    6464    return numerator / denominator ; 
  • sasmodels/models/fcc_paracrystal.c

    r0b717c5 r4962519  
    3232 
    3333        const double temp10 = exp((-1.0/8.0)*temp1*((temp7*temp7)+(temp8*temp8)+(temp9*temp9))); 
    34         result = pow((1.0-(temp10*temp10)),3)*temp6 
     34        result = cube(1.0-(temp10*temp10))*temp6 
    3535            / ( (1.0 - 2.0*temp10*cos(0.5*temp3*temp7) + temp10*temp10) 
    3636              * (1.0 - 2.0*temp10*cos(0.5*temp3*temp8) + temp10*temp10) 
  • sasmodels/models/flexible_cylinder_elliptical.c

    r3a48772 r4962519  
    2121        double sn, cn; 
    2222        SINCOS(zi, sn, cn); 
    23         double arg = q*sqrt(a*a*sn*sn+b*b*cn*cn); 
    24         double yyy = pow((double)sas_J1c(arg),2); 
    25         yyy *= Gauss76Wt[i]; 
    26         summ += yyy; 
     23        double arg = q*sqrt(a*a*sn*sn + b*b*cn*cn); 
     24        double yyy = sas_J1c(arg); 
     25        summ += Gauss76Wt[i] * yyy * yyy; 
    2726    } 
    2827 
  • sasmodels/models/fractal_core_shell.py

    ra807206 r4962519  
    100100        @param thickness: shell thickness 
    101101    """ 
    102     whole = 4.0 * pi / 3.0 * pow((radius + thickness), 3) 
    103     core = 4.0 * pi / 3.0 * radius * radius * radius 
     102    whole = 4.0/3.0 * pi * (radius + thickness)**3 
     103    core = 4.0/3.0 * pi * radius**3 
    104104    return whole, whole-core 
    105105 
  • sasmodels/models/hayter_msa.c

    r3a48772 r4962519  
    4848        Kappa=sqrt(2*Beta*IonSt/Perm);     //Kappa calc from Ionic strength 
    4949                                                                           //   Kappa=2/SIdiam                                  // Use to compare with HP paper 
    50         gMSAWave[5]=Beta*charge*charge/(M_PI*Perm*SIdiam*pow((2.0+Kappa*SIdiam),2)); 
     50        gMSAWave[5]=Beta*charge*charge/(M_PI*Perm*SIdiam*square(2.0+Kappa*SIdiam)); 
    5151         
    5252        //         Finally set up dimensionless parameters  
  • sasmodels/models/lamellar_stack_paracrystal.c

    r0bef47b r4962519  
    6767        double Snq; 
    6868 
    69         Snq = an/( (double)Nlayers*pow((1.0+ww*ww-2.0*ww*cos(qval*davg)),2) ); 
     69        Snq = an/( (double)Nlayers*square(1.0+ww*ww-2.0*ww*cos(qval*davg)) ); 
    7070         
    7171        return(Snq); 
  • sasmodels/models/lib/wrc_cyl.c

    rba32cdd r4962519  
    1414    //return t; 
    1515 
    16     return pow( (1.0 + (x/3.12)*(x/3.12) + 
    17          (x/8.67)*(x/8.67)*(x/8.67)),(0.176/3.0) ); 
     16    return pow(1.0+square(x/3.12)+cube(x/8.67), 0.176/3.0); 
    1817} 
    1918 
     
    2322{ 
    2423    const double r = b/L; 
    25     return (L*b/6.0) * 
    26            (1.0 - r*1.5  + 1.5*r*r - 0.75*r*r*r*(1.0 - exp(-2.0/r))); 
     24    return (L*b/6.0) * (1.0 - r*(1.5 + r*(1.5 + r*0.75*expm1(-2.0/r)))); 
    2725} 
    2826 
     
    4139} 
    4240 
    43 static inline double 
     41static double 
    4442sech_WR(double x) 
    4543{ 
     
    5149{ 
    5250    double C; 
    53     const double onehalf = 1.0/2.0; 
    5451 
    5552    if( L/b > 10.0) { 
     
    8683 
    8784    const double t2 = (2.0*b4*(((-1.0) + pow((double)M_E,(-(Rg02/b2))) + 
    88          Rg02/b2))*((1.0 + onehalf*(((-1.0) - 
     85         Rg02/b2))*((1.0 + 0.5*(((-1.0) - 
    8986         tanh((-C4 + Rgb/C5))))))); 
    9087 
     
    112109 
    113110    const double t9 = (2.0*b4*(((2.0*q0*Rg2)/b - 
    114          (2.0*pow((double)M_E,(-(Rg02/b2)))*q0*Rg2)/b))*((1.0 + onehalf*(((-1.0) - 
     111         (2.0*pow((double)M_E,(-(Rg02/b2)))*q0*Rg2)/b))*((1.0 + 0.5*(((-1.0) - 
    115112         tanh(((-C4) + Rgb)/C5)))))); 
    116113 
    117114    const double t10 = (8.0*b4*b*(((-1.0) + pow((double)M_E,(-(Rg02/b2))) + 
    118          Rg02/b2))*((1.0 + onehalf*(((-1.0) - tanh(((-C4) + 
     115         Rg02/b2))*((1.0 + 0.5*(((-1.0) - tanh(((-C4) + 
    119116         Rgb)/C5)))))); 
    120117 
     
    131128 
    132129    const double t14 = (2.0*b4*(((-1.0) + pow((double)M_E,(-(Rg02/b2))) + 
    133           Rg02/b2))*((1.0 + onehalf*(((-1.0) - tanh(((-C4) + 
     130          Rg02/b2))*((1.0 + 0.5*(((-1.0) - tanh(((-C4) + 
    134131          Rgb)/C5)))))); 
    135132 
     
    140137 
    141138    double yy = (pow(q0,p1)*(((-((b*M_PI)/(L*q0))) +t1/L +t2/(q04*Rg22) + 
    142         onehalf*t3*t4)) + (t5*((pow(q0,(p1 - p2))* 
     139        0.5*t3*t4)) + (t5*((pow(q0,(p1 - p2))* 
    143140        (((-pow(q0,(-p1)))*(((b2*M_PI)/(L*q02) +t6/L +t7/(2.0*C5) - 
    144         t8/(C5*q04*Rg22) + t9/(q04*Rg22) -t10/(q05*Rg22) + onehalf*t11*t12)) - 
     141        t8/(C5*q04*Rg22) + t9/(q04*Rg22) -t10/(q05*Rg22) + 0.5*t11*t12)) - 
    145142        b*p1*pow(q0,((-1.0) - p1))*(((-((b*M_PI)/(L*q0))) + t13/L + 
    146         t14/(q04*Rg22) + onehalf*t15*((1.0 + tanh(((-C4) + 
     143        t14/(q04*Rg22) + 0.5*t15*((1.0 + tanh(((-C4) + 
    147144        Rgb)/C5))))))))))); 
    148145 
     
    154151{ 
    155152    double C; 
    156     const double onehalf = 1.0/2.0; 
    157153 
    158154    if( L/b > 10.0) { 
     
    201197    const double t5 = (2.0*b4*(((2.0*q0*Rg2)/b - 
    202198         (2.0*pow((double)M_E,(-(Rg02/b2)))*q0*Rg2)/b))* 
    203          ((1.0 + onehalf*(((-1.0) - tanh(((-C4) + 
     199         ((1.0 + 0.5*(((-1.0) - tanh(((-C4) + 
    204200         Rgb)/C5))))))/(q04*Rg22); 
    205201 
    206202    const double t6 = (8.0*b4*b*(((-1.0) + pow((double)M_E,(-(Rg02/b2))) + 
    207          Rg02/b2))*((1.0 + onehalf*(((-1) - tanh(((-C4) + 
     203         Rg02/b2))*((1.0 + 0.5*(((-1) - tanh(((-C4) + 
    208204         Rgb)/C5))))))/(q05*Rg22); 
    209205 
     
    219215 
    220216    const double t10 = (2.0*b4*(((-1) + pow((double)M_E,(-(Rg02/b2))) + 
    221           Rg02/b2))*((1.0 + onehalf*(((-1) - tanh(((-C4) + 
     217          Rg02/b2))*((1.0 + 0.5*(((-1) - tanh(((-C4) + 
    222218          Rgb)/C5))))))/(q04*Rg22); 
    223219 
    224220    const double yy = ((-1.0*(t1* ((-pow(q0,-p1)*(((b2*M_PI)/(L*q02) + 
    225          t2 + t3 - t4 + t5 - t6 + onehalf*t7*t8)) - b*p1*pow(q0,((-1.0) - p1))* 
     221         t2 + t3 - t4 + t5 - t6 + 0.5*t7*t8)) - b*p1*pow(q0,((-1.0) - p1))* 
    226222         (((-((b*M_PI)/(L*q0))) + t9 + t10 + 
    227          onehalf*((C3*pow(((Rgb)),((-3.0)/miu)) + 
     223         0.5*((C3*pow(((Rgb)),((-3.0)/miu)) + 
    228224         C2*pow(((Rgb)),((-2.0)/miu)) + 
    229225         C1*pow(((Rgb)),((-1.0)/miu))))* 
  • sasmodels/models/linear_pearls.c

    r3a48772 r4962519  
    4343    double separation = edge_sep + 2.0 * radius; 
    4444 
    45     double x=q*radius; 
    46  
    47     // Try Taylor on x*xos(x) 
    48         // double out_cos = x - pow(x,3)/2 + pow(x,5)/24 - pow(x,7)/720 + pow(x,9)/40320; 
    49     // psi -= x*out_cos; 
    50  
    5145    //sine functions of a pearl 
    52     double psi = sin(q * radius); 
    53     psi -= x * cos(x); 
    54     psi /= pow((q * radius), 3.0); 
     46    double psi = sph_j1c(q * radius); 
    5547 
    5648    // N pearls contribution 
     
    6153    } 
    6254    // form factor for num_pearls 
    63     double form_factor = n_contrib; 
    64     form_factor *= pow((m_s*psi*3.0), 2.0); 
    65     form_factor /= (tot_vol * 1.0e4); 
     55    double form_factor = 1.0e-4 * n_contrib * square(m_s*psi) / tot_vol; 
    6656 
    6757    return form_factor; 
  • sasmodels/models/linear_pearls.py

    r40a87fa r4962519  
    6363single = False 
    6464 
    65 source = ["linear_pearls.c"] 
     65source = ["lib/sph_j1c.c", "linear_pearls.c"] 
    6666 
    6767demo = dict(scale=1.0, background=0.0, 
  • sasmodels/models/pearl_necklace.py

    ra807206 r4962519  
    112112    """ 
    113113    tot_vol = volume(radius, edge_sep, thick_string, num_pearls) 
    114     rad_out = pow((3.0*tot_vol/4.0/pi), 0.33333) 
     114    rad_out = (tot_vol/(4.0/3.0*pi)) ** (1./3.) 
    115115    return rad_out 
    116116 
  • sasmodels/models/porod.py

    r40a87fa r4962519  
    4141    """ 
    4242    with errstate(divide='ignore'): 
    43         return power(q, -4) 
     43        return q**-4 
    4444 
    4545Iq.vectorized = True  # Iq accepts an array of q values 
  • sasmodels/models/sc_paracrystal.c

    r3a48772 r4962519  
    4949        double da = d_factor*dnn; 
    5050        double temp1 = qq*qq*da*da; 
    51         double temp2 = pow( 1.0-exp(-1.0*temp1) ,3); 
     51        double temp2 = cube(-expm1(-temp1)); 
    5252        double temp3 = qq*dnn; 
    5353        double temp4 = 2.0*exp(-0.5*temp1); 
    5454        double temp5 = exp(-1.0*temp1); 
    5555 
    56         double integrand = temp2*sc_eval(yy,xx,temp3,temp4,temp5); 
    57         integrand /= M_PI_2; 
     56        double integrand = temp2*sc_eval(yy,xx,temp3,temp4,temp5)/M_PI_2; 
    5857 
    5958        return(integrand); 
  • sasmodels/models/teubner_strey.py

    rb3f2a24 r4962519  
    7171 
    7272import numpy as np 
    73 from numpy import inf,power,pi 
     73from numpy import inf, pi 
    7474 
    7575name = "teubner_strey" 
     
    9393    drho2 = (sld-sld_solvent)*(sld-sld_solvent) 
    9494    k = 2.0*pi*xi/d 
    95     a2 = power(1.0+power(k,2.0),2.0) 
    96     c1 = -2.0*xi*xi*power(k,2.0)+2*xi*xi 
    97     c2 = power(xi,4.0) 
     95    a2 = (1.0 + k**2)**2 
     96    c1 = 2.0*xi**2 * (1.0 - k**2) 
     97    c2 = xi**4 
    9898    prefactor = 8.0*pi*volfraction*(1.0-volfraction)*drho2*c2/xi 
    9999    #k2 = (2.0*pi/d)*(2.0*pi/d) 
Note: See TracChangeset for help on using the changeset viewer.