20 return t *
t *
t * (
t * (6 *
t - 15) + 10);
28 for (
int k = 0;
k < d;
k++) {
29 static const uint32_t M = 1664525,
C = 1013904223;
38 return (((
seed & 0xff0000) >> 4) + (
seed & 0xff)) & 0xff;
50 for (
int k = 0;
k < d;
k++) {
51 static const uint32_t M = 1664525,
C = 1013904223;
56 u1.i ^= (
u1.i << 7) & 0x9d2c5680U;
57 u1.i ^= (
u1.i << 15) & 0xefc60000U;
74 for (
int k = 0;
k < d;
k++) {
86 const int num = 1 << d;
91 for (
int k = 0;
k < d;
k++) {
92 offset[
k] = ((
dummy & (1 <<
k)) != 0);
98 for (
int k = 0;
k < d;
k++) {
107 for (
int k = 0;
k < d;
k++)
112 int k = (d -
newd - 1);
203 for (
int k = 0;
k <
d_in;
k++) {
229int main(
int argc,
char *argv[])
233 for (
int i = 0; i < 10000000; i++) {
234 T foo[3] = {.3, .3, .3};
static constexpr std::array< int, 514 > p
KSeExpr_DEFAULT double_t floor(double_t val)
double s_curve(double t)
This is the Quintic interpolant from Perlin's Improved Noise Paper.
template void Noise< 2, 1, double >(const double *, double *)
template void FBM< 4, 1, false, double >(const double *, double *, int, double, double)
template void PNoise< 3, 1, double >(const double *, const int *, double *)
void Noise(const T *in, T *out)
Noise with d_in dimensional domain, d_out dimensional abcissa.
template void FBM< 3, 3, false, double >(const double *, double *, int, double, double)
template void FBM< 3, 1, true, double >(const double *, double *, int, double, double)
template void Noise< 1, 1, double >(const double *, double *)
template void FBM< 3, 1, false, double >(const double *, double *, int, double, double)
template void CellNoise< 3, 1, double >(const double *, double *)
void CellNoise(const T *in, T *out)
Computes cellular noise (non-interpolated piecewise constant cell random values)
template void CellNoise< 3, 3, double >(const double *, double *)
T noiseHelper(const T *X, const int *period=0)
Noise with d_in dimensional domain, 1 dimensional abcissa.
unsigned char hashReduceChar(int index[d])
Does a hash reduce to a character.
void PNoise(const T *in, const int *period, T *out)
Periodic Noise with d_in dimensional domain, d_out dimensional abcissa.
template void FBM< 4, 3, false, double >(const double *, double *, int, double, double)
double turbulence(int n, const Vec3d *args)
void FBM(const T *in, T *out, int octaves, T lacunarity, T gain)
Fractional Brownian Motion. If turbulence is true then turbulence computed.
uint32_t hashReduce(uint32_t index[d])
Does a hash reduce to an integer.
template void Noise< 3, 3, double >(const double *, double *)
template void FBM< 3, 3, true, double >(const double *, double *, int, double, double)
template void Noise< 3, 1, double >(const double *, double *)
template void Noise< 4, 1, double >(const double *, double *)
template void Noise< 4, 3, double >(const double *, double *)