mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-06 00:06:00 -04:00
--Bug fixes
-Ensure all OpenCL functions that take multiple arguments cast literal values to real_t.
This commit is contained in:
@ -229,7 +229,7 @@ public:
|
||||
<< "\t\t if (L > 0.8)\n"
|
||||
<< "\t\t R = trgL / L2;\n"
|
||||
<< "\t\t else\n"
|
||||
<< "\t\t R = fma(trgL / L1, (real_t)(0.8) - L, (trgL / L2) * (L - 0.5)) / 0.3;\n"
|
||||
<< "\t\t R = fma(trgL / L1, (real_t)(0.8) - L, (trgL / L2) * (L - (real_t)(0.5))) / 0.3;\n"
|
||||
<< "\t\t}\n"
|
||||
<< "\n"
|
||||
<< "\t\tVx *= R;\n"
|
||||
@ -3207,7 +3207,7 @@ public:
|
||||
"\n"
|
||||
" if (*skew != 0)\n"
|
||||
" {\n"
|
||||
" *z = fma(0.5, *skew, 0.5);\n"
|
||||
" *z = fma((real_t)(0.5), *skew, (real_t)(0.5));\n"
|
||||
"\n"
|
||||
" if (*y > *z)\n"
|
||||
" *y = fma((real_t)(0.5), (*y - *z) / Zeps(1 - *z), (real_t)(0.5));\n"
|
||||
@ -3230,7 +3230,7 @@ public:
|
||||
" *x = 1 - 2 * *y;\n"
|
||||
" break;\n"
|
||||
" case WAVE_TRIANGLE:\n"
|
||||
" *x = *y > 0.5 ? 3 - 4 * *y : fma((real_t)(2.0), *y, -1);\n"
|
||||
" *x = *y > 0.5 ? 3 - 4 * *y : fma((real_t)(2.0), *y, (real_t)(-1.0));\n"
|
||||
" break;\n"
|
||||
" case WAVE_CONCAVE:\n"
|
||||
" *x = fma((real_t)(8.0), Sqr(*y - 0.5), (real_t)(-1.0));\n"
|
||||
@ -3308,7 +3308,7 @@ public:
|
||||
" t = x;\n"
|
||||
"\n"
|
||||
" if (fabs(m - 0.5) > 1e-10)\n"
|
||||
" t = fma((real_t)(-1.0), m, sqrt(fma(m, m, (1 - 2 * m) * x))) / (1 - 2 * m);\n"
|
||||
" t = fma((real_t)(-1.0), m, sqrt(fma(m, m, ((real_t)(1.0) - (real_t)(2.0) * m) * x))) / ((real_t)(1.0) - (real_t)(2.0) * m);\n"
|
||||
"\n"
|
||||
" return a * fma(m - (real_t)(1.0), SQR(t), x);\n"
|
||||
" }\n"
|
||||
@ -3318,7 +3318,7 @@ public:
|
||||
" t = x;\n"
|
||||
"\n"
|
||||
" if (fabs(m - 2) > 1e-10)\n"
|
||||
" t = fma((real_t)(-1.0), iM, sqrt(fma(iM, iM, (1 - 2 * iM) * x))) / (1 - 2 * iM);\n"
|
||||
" t = fma((real_t)(-1.0), iM, sqrt(fma(iM, iM, ((real_t)(1.0) - (real_t)(2.0) * iM) * x))) / ((real_t)(1.0) - (real_t)(2.0) * iM);\n"
|
||||
"\n"
|
||||
" return a * fma(m - (real_t)(1.0), SQR(t), x);\n"
|
||||
" }\n"
|
||||
@ -3326,11 +3326,11 @@ public:
|
||||
" if (m < 1)\n"
|
||||
" {\n"
|
||||
" t = sqrt((x - 1) / (L - 1));\n"
|
||||
" return a * fma((m - 1), t * t, x + fma((real_t)(2.0), (1 - m) * t, (m - 1)));\n"
|
||||
" return a * fma((m - 1), t * t, x + fma((real_t)(2.0), ((real_t)(1.0) - m) * t, (m - 1)));\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" t = (1 - m) + sqrt(fma((m - 1), (m - 1), (x - 1)));\n"
|
||||
" return a * fma((m - 1), t * t, x - fma((real_t)(2.0), (m - 1) * t, (m - 1)));\n"
|
||||
" t = (1 - m) + sqrt(fma((m - (real_t)(1.0)), (m - (real_t)(1.0)), (x - (real_t)(1.0))));\n"
|
||||
" return a * fma((m - (real_t)(1.0)), t * t, x - fma((real_t)(2.0), (m - (real_t)(1.0)) * t, (m - (real_t)(1.0))));\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"static real_t Interpolate(real_t x, real_t m, int lerpType)\n"
|
||||
@ -3354,11 +3354,11 @@ public:
|
||||
" {\n"
|
||||
" case SINCOS_MULTIPLY:\n"
|
||||
" *s = *s * SynthValue(synth, theta);\n"
|
||||
" *c = *c * SynthValue(synth, theta + MPI / 2);\n"
|
||||
" *c = *c * SynthValue(synth, theta + MPI / (real_t)(2.0));\n"
|
||||
" break;\n"
|
||||
" case SINCOS_MIXIN:\n"
|
||||
" *s = fma(((real_t)(1.0) - synth->SynthMix), *s, (SynthValue(synth, theta) - 1));\n"
|
||||
" *c = fma(((real_t)(1.0) - synth->SynthMix), *c, (SynthValue(synth, theta + MPI / 2) - 1));\n"
|
||||
" *s = fma(((real_t)(1.0) - synth->SynthMix), *s, (SynthValue(synth, theta) - (real_t)(1.0)));\n"
|
||||
" *c = fma(((real_t)(1.0) - synth->SynthMix), *c, (SynthValue(synth, theta + MPI / (real_t)(2.0)) - (real_t)(1.0)));\n"
|
||||
" break;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
|
Reference in New Issue
Block a user