Changeset 0b717c5 in sasmodels for sasmodels/models/bcc_paracrystal.c


Ignore:
Timestamp:
Oct 14, 2016 12:53:59 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:
5bddd89
Parents:
ec9d329
Message:

bcc/fcc/sc: slightly slower but more robust calculation of Zq

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/models/bcc_paracrystal.c

    r11ca2ab r0b717c5  
    9898 
    9999    const double qd = 0.5*q*dnn; 
    100     const double exp_qd = exp(0.5*square(qd*d_factor)*(a1*a1 + a2*a2 + a3*a3)); 
    101     const double sinh_qd = 0.5*exp_qd - 0.5/exp_qd; 
    102     const double cosh_qd = 0.5*exp_qd + 0.5/exp_qd; 
    103  
    104     const double Zq = sinh_qd/(cosh_qd - cos(qd*a1)) 
    105                     * sinh_qd/(cosh_qd - cos(qd*a2)) 
    106                     * sinh_qd/(cosh_qd - cos(qd*a3)); 
     100    const double arg = 0.5*square(qd*d_factor)*(a1*a1 + a2*a2 + a3*a3); 
     101    const double tanh_qd = tanh(arg); 
     102    const double cosh_qd = cosh(arg); 
     103    const double Zq = tanh_qd/(1. - cos(qd*a1)/cosh_qd) 
     104                    * tanh_qd/(1. - cos(qd*a2)/cosh_qd) 
     105                    * tanh_qd/(1. - cos(qd*a3)/cosh_qd); 
    107106 
    108107    const double Fq = sphere_form(q,radius,sld,solvent_sld)*Zq; 
Note: See TracChangeset for help on using the changeset viewer.