Changeset 29f27df in sasmodels
- Timestamp:
- Feb 5, 2016 3:51:05 PM (9 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/kernel_template.c
rcaf768d r29f27df 16 16 using namespace std; 17 17 #if defined(_MSC_VER) 18 #include <limits> 18 19 #include <float.h> 19 20 #define kernel extern "C" __declspec( dllexport ) … … 22 23 inline double fmax(double x, double y) { return x<y ? y : x; } 23 24 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 24 48 #else 25 49 #define kernel extern "C"
Note: See TracChangeset
for help on using the changeset viewer.