History

working webaudio host. random2f arguments are found to be 0 when floats and ints are 64 bit, so turned to 32 bit. not sure what if anything else is broken

Jack Atherton committed 7 years ago

Commit cbbd4451 parent d1956a710 files · +618 −1263Browse files

Showing the changes to src/core/ulib_math.cpp (1 of 10 files). Show all

Unified · Split

src/core/ulib_math.cpp+9−7
@@ -44,10 +44,10 @@ · 43 unmodified lines
44static double g_pi = ONE_PI;44static double g_pi = ONE_PI;
45static double g_twopi = TWO_PI;45static double g_twopi = TWO_PI;
46static double g_e = ::exp( 1.0 );46static double g_e = ::exp( 1.0 );
47static t_CKFLOAT g_floatMax = DBL_MAX;47static t_CKFLOAT g_floatMax = CK_FLT_MAX;
48static t_CKFLOAT g_floatMin = DBL_MIN;48static t_CKFLOAT g_floatMin = CK_FLT_MIN;
49static t_CKFLOAT g_inf = 0.0;49static t_CKFLOAT g_inf = 0.0;
50static t_CKINT g_intMax = LONG_MAX;50static t_CKINT g_intMax = CK_INT_MAX;
51static t_CKINT g_randomMax = CK_RANDOM_MAX;51static t_CKINT g_randomMax = CK_RANDOM_MAX;
52static t_CKCOMPLEX g_i = { 0.0, 1.0 };52static t_CKCOMPLEX g_i = { 0.0, 1.0 };
53static t_CKFLOAT fzero() { return 0.0; }53static t_CKFLOAT fzero() { return 0.0; }
@@ -332,7 +332,7 @@ DLL_QUERY libmath_query( Chuck_DL_Query * QUERY ) · 278 unmodified lines
332 QUERY->add_svar( QUERY, "float", "e", TRUE, &g_e );332 QUERY->add_svar( QUERY, "float", "e", TRUE, &g_e );
333 333
334 // float max334 // float max
335 assert( sizeof(t_CKFLOAT) == sizeof(double) );335 //assert( sizeof(t_CKFLOAT) == sizeof(double) );
336 QUERY->add_svar( QUERY, "float", "FLOAT_MAX", TRUE, &g_floatMax );336 QUERY->add_svar( QUERY, "float", "FLOAT_MAX", TRUE, &g_floatMax );
337 337
338 // float min338 // float min
@@ -340,9 +340,9 @@ DLL_QUERY libmath_query( Chuck_DL_Query * QUERY ) · 1 unmodified line
340 340
341 // int max341 // int max
342#ifdef _WIN64 // REFACTOR-2017342#ifdef _WIN64 // REFACTOR-2017
343 assert( sizeof(t_CKINT) == sizeof(long long) );343 //assert( sizeof(t_CKINT) == sizeof(long long) );
344#else344#else
345 assert( sizeof(t_CKINT) == sizeof(long) );345 //assert( sizeof(t_CKINT) == sizeof(long) );
346#endif346#endif
347 QUERY->add_svar( QUERY, "int", "INT_MAX", TRUE, &g_intMax );347 QUERY->add_svar( QUERY, "int", "INT_MAX", TRUE, &g_intMax );
348 348
@@ -726,7 +726,9 @@ CK_DLL_SFUN( randomf_impl ) · 377 unmodified lines
726CK_DLL_SFUN( random2f_impl )726CK_DLL_SFUN( random2f_impl )
727{727{
728 t_CKFLOAT min = GET_CK_FLOAT(ARGS), max = *((t_CKFLOAT *)ARGS + 1);728 t_CKFLOAT min = GET_CK_FLOAT(ARGS), max = *((t_CKFLOAT *)ARGS + 1);
729 RETURN->v_float = min + (max-min)*(::random()/(t_CKFLOAT)CK_RANDOM_MAX);729 t_CKFLOAT normRand = ((t_CKFLOAT)::random()*1.0/(t_CKFLOAT)CK_RANDOM_MAX);
730 //CK_FPRINTF_STDERR( "[chuck random2f]: %G --> %G, %G\n", normRand, min, max );
731 RETURN->v_float = min + (max-min)* normRand;
730}732}
731 733
732 734

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t