Changeset 29f27df in sasmodels


Ignore:
Timestamp:
Feb 5, 2016 1:51:05 PM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
840b859
Parents:
3882eeb
Message:

older MSVC is missing expm1()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/kernel_template.c

    rcaf768d r29f27df  
    1616     using namespace std; 
    1717     #if defined(_MSC_VER) 
     18         #include <limits> 
    1819         #include <float.h> 
    1920         #define kernel extern "C" __declspec( dllexport ) 
     
    2223             inline double fmax(double x, double y) { return x<y ? y : x; } 
    2324             inline double isnan(double x) { return _isnan(x); } 
     25             #define NAN (std::numeric_limits<double>::quiet_NaN()) // non-signalling NaN 
     26             static double cephes_expm1(double x) { 
     27                 if (x != x || x == 0.0) { 
     28                     return x; // NaN and +/- 0 
     29                 } else if (x < -0.5 || x > 0.5) { 
     30                     return exp(x) - 1.0; 
     31                 } else { 
     32                     const double xsq = x*x; 
     33                     const double p = ((( 
     34                          +1.2617719307481059087798E-4)*xsq 
     35                      +3.0299440770744196129956E-2)*xsq 
     36                      +9.9999999999999999991025E-1); 
     37                 const double q = (((( 
     38                      +3.0019850513866445504159E-6)*xsq 
     39                      +2.5244834034968410419224E-3)*xsq 
     40                      +2.2726554820815502876593E-1)*xsq 
     41                      +2.0000000000000000000897E0); 
     42                 double r = x * p; 
     43                     r =  r / (q - r); 
     44                     return r+r; 
     45                 } 
     46             } 
     47             #define expm1 cephes_expm1 
    2448     #else 
    2549         #define kernel extern "C" 
Note: See TracChangeset for help on using the changeset viewer.