Namespace for the Math API. More...
Namespaces | |
namespace | functor |
Namespace for basic math functors in the Math API. | |
namespace | general |
Namespace for generic functions in the Math API. | |
Classes | |
class | Bbox |
Axis-aligned N-dimensional bounding box class template of fixed dimension. More... | |
struct | Bbox_struct |
Storage class for an axis-aligned N-dimensional bounding box class template of fixed dimension. More... | |
class | Color |
Standard RGBA color class with floating point elements and operations. More... | |
struct | Color_struct |
Generic storage class template for an RGBA color representation storing four floating points elements. More... | |
class | Matrix |
NxM-dimensional matrix class template of fixed dimensions. More... | |
struct | Matrix_struct |
Storage class for a NxM-dimensional matrix class template of fixed dimensions. More... | |
struct | Matrix_struct<T, 1, 1> |
Specialization for 1x1-matrix. More... | |
struct | Matrix_struct<T, 1, 2> |
Specialization for 1x2-matrix. More... | |
struct | Matrix_struct<T, 1, 3> |
Specialization for 1x3-matrix. More... | |
struct | Matrix_struct<T, 1, 4> |
Specialization for 1x4-matrix. More... | |
struct | Matrix_struct<T, 2, 1> |
Specialization for 2x1-matrix. More... | |
struct | Matrix_struct<T, 2, 2> |
Specialization for 2x2-matrix. More... | |
struct | Matrix_struct<T, 2, 3> |
Specialization for 2x3-matrix. More... | |
struct | Matrix_struct<T, 2, 4> |
Specialization for 2x4-matrix. More... | |
struct | Matrix_struct<T, 3, 1> |
Specialization for 3x1-matrix. More... | |
struct | Matrix_struct<T, 3, 2> |
Specialization for 3x2-matrix. More... | |
struct | Matrix_struct<T, 3, 3> |
Specialization for 3x3-matrix. More... | |
struct | Matrix_struct<T, 3, 4> |
Specialization for 3x4-matrix. More... | |
struct | Matrix_struct<T, 4, 1> |
Specialization for 4x1-matrix. More... | |
struct | Matrix_struct<T, 4, 2> |
Specialization for 4x2-matrix. More... | |
struct | Matrix_struct<T, 4, 3> |
Specialization for 4x3-matrix. More... | |
struct | Matrix_struct<T, 4, 4> |
Specialization for 4x4-matrix. More... | |
class | Spectrum |
Spectrum with floating point elements and operations. More... | |
struct | Spectrum_struct |
Generic storage class template for a Spectrum representation storing three floating point elements. More... | |
class | Vector |
Fixed-size math vector class template with generic operations. More... | |
struct | Vector_struct |
Generic storage class template for math vector representations storing DIM elements of type T . More... | |
struct | Vector_struct<T, 1> |
Specialization for dimension 1 to create x member. More... | |
struct | Vector_struct<T, 2> |
Specialization for dimension 2 to create x and y member. More... | |
struct | Vector_struct<T, 3> |
Specialization for dimension 3 to create x, y, and z members. More... | |
struct | Vector_struct<T, 4> |
Specialization for dimension 4 to create x, y, z, and w members. More... | |
Enumerations | |
enum | Clip_mode { CLIP_RGB , CLIP_ALPHA , CLIP_RAW } |
Supported clipping modes. More... | |
enum | From_iterator_tag { FROM_ITERATOR } |
Enum used for initializing a vector from an iterator. More... | |
Functions | |
template<typename T , Size DIM> | |
Bbox<T, DIM> | operator+ (const Bbox<T, DIM> &bbox, T value) |
Returns a bounding box that is the bbox increased by a constant value at each face, i.e., value is added to bbox.max and subtracted from bbox.min . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> | operator- (const Bbox<T, DIM> &bbox, T value) |
Returns a bounding box that is the bbox shrunk by a constant value at each face, i.e., value is subtracted from bbox.max and added to bbox.min . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> | operator* (const Bbox<T, DIM> &bbox, T factor) |
Returns a bounding box that is a version of bbox scaled by factor , i.e., bbox.max and bbox.min are multiplied by factor . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> | operator/ (const Bbox<T, DIM> &bbox, T divisor) |
Returns a bounding box that is a version of bbox divided by divisor , i.e., bbox.max and bbox.min are divided by divisor . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> & | operator+= (Bbox<T, DIM> &bbox, T value) |
Increases bbox by a constant value at each face, i.e., value is added to bbox.max and subtracted from bbox.min . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> & | operator-= (Bbox<T, DIM> &bbox, T value) |
Shrinks bbox by a constant value at each face, i.e., value is subtracted from bbox.max and added to bbox.min . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> & | operator*= (Bbox<T, DIM> &bbox, T factor) |
Scales bbox by factor , i.e., bbox.max and bbox.min are multiplied by factor . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> & | operator/= (Bbox<T, DIM> &bbox, T divisor) |
Divide bbox by divisor , i.e., bbox.max and bbox.min are divided by divisor . More... | |
template<typename T , Size DIM> | |
bool | operator== (const Bbox<T, DIM> &lhs, const Bbox<T, DIM> &rhs) |
Returns true if lhs is elementwise equal to rhs . More... | |
template<typename T , Size DIM> | |
bool | operator!= (const Bbox<T, DIM> &lhs, const Bbox<T, DIM> &rhs) |
Returns true if lhs is elementwise not equal to rhs . More... | |
template<typename T , Size DIM> | |
bool | operator< (const Bbox<T, DIM> &lhs, const Bbox<T, DIM> &rhs) |
Returns true if lhs is lexicographically less than rhs . More... | |
template<typename T , Size DIM> | |
bool | operator<= (const Bbox<T, DIM> &lhs, const Bbox<T, DIM> &rhs) |
Returns true if lhs is lexicographically less than or equal to rhs . More... | |
template<typename T , Size DIM> | |
bool | operator> (const Bbox<T, DIM> &lhs, const Bbox<T, DIM> &rhs) |
Returns true if lhs is lexicographically greater than rhs . More... | |
template<typename T , Size DIM> | |
bool | operator>= (const Bbox<T, DIM> &lhs, const Bbox<T, DIM> &rhs) |
Returns true if lhs is lexicographically greater than or equal to rhs . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> | lerp (const Bbox<T, DIM> &bbox1, const Bbox<T, DIM> &bbox2, T t) |
Returns the linear interpolation between bbox1 and bbox2 , i.e., it returns (1-t) * bbox1 + t * bbox2 . More... | |
template<typename T , Size DIM> | |
Bbox<T, DIM> | clip (const Bbox<T, DIM> &bbox1, const Bbox<T, DIM> &bbox2) |
Clip bbox1 at bbox2 and return the result. More... | |
template<typename TT , typename T> | |
Bbox<T, 3> | transform_point (const Matrix<TT, 4, 4> &mat, const Bbox<T, 3> &bbox) |
Returns the 3D bounding box transformed by a matrix. More... | |
template<typename TT , typename T> | |
Bbox<T, 3> | transform_vector (const Matrix<TT, 4, 4> &mat, const Bbox<T, 3> &bbox) |
Returns the 3D bounding box transformed by a matrix. More... | |
bool | operator== (const Color &lhs, const Color &rhs) |
Returns true if lhs is elementwise equal to rhs . More... | |
bool | operator!= (const Color &lhs, const Color &rhs) |
Returns true if lhs is elementwise not equal to rhs . More... | |
bool | operator< (const Color &lhs, const Color &rhs) |
Returns true if lhs is lexicographically less than rhs . More... | |
bool | operator<= (const Color &lhs, const Color &rhs) |
Returns true if lhs is lexicographically less than or equal to rhs . More... | |
bool | operator> (const Color &lhs, const Color &rhs) |
Returns true if lhs is lexicographically greater than rhs . More... | |
bool | operator>= (const Color &lhs, const Color &rhs) |
Returns true if lhs is lexicographically greater than or equal to rhs . More... | |
Color & | operator+= (Color &lhs, const Color &rhs) |
Adds rhs elementwise to lhs and returns the modified lhs . More... | |
Color & | operator-= (Color &lhs, const Color &rhs) |
Subtracts rhs elementwise from lhs and returns the modified lhs . More... | |
Color & | operator*= (Color &lhs, const Color &rhs) |
Multiplies rhs elementwise with lhs and returns the modified lhs . More... | |
Color & | operator/= (Color &lhs, const Color &rhs) |
Divides lhs elementwise by rhs and returns the modified lhs . More... | |
Color | operator+ (const Color &lhs, const Color &rhs) |
Adds lhs and rhs elementwise and returns the new result. More... | |
Color | operator- (const Color &lhs, const Color &rhs) |
Subtracts rhs elementwise from lhs and returns the new result. More... | |
Color | operator* (const Color &lhs, const Color &rhs) |
Multiplies rhs elementwise with lhs and returns the new result. More... | |
Color | operator/ (const Color &lhs, const Color &rhs) |
Divides rhs elementwise by lhs and returns the new result. More... | |
Color | operator- (const Color &c) |
Negates the color c elementwise and returns the new result. More... | |
Color & | operator*= (Color &c, Float32 s) |
Multiplies the color c elementwise with the scalar s and returns the modified color c . More... | |
Color & | operator/= (Color &c, Float32 s) |
Divides the color c elementwise by the scalar s and returns the modified color c . More... | |
Color | operator* (const Color &c, Float32 s) |
Multiplies the color c elementwise with the scalar s and returns the new result. More... | |
Color | operator* (Float32 s, const Color &c) |
Multiplies the color c elementwise with the scalar s and returns the new result. More... | |
Color | operator/ (const Color &c, Float32 s) |
Divides the color c elementwise by the scalar s and returns the new result. More... | |
Color | abs (const Color &c) |
Returns a color with the elementwise absolute values of the color c . More... | |
Color | acos (const Color &c) |
Returns a color with the elementwise arc cosine of the color c . More... | |
bool | all (const Color &c) |
Returns true if all elements of c are not equal to zero. More... | |
bool | any (const Color &c) |
Returns true if any element of c is not equal to zero. More... | |
Color | asin (const Color &c) |
Returns a color with the elementwise arc sine of the color c . More... | |
Color | atan (const Color &c) |
Returns a color with the elementwise arc tangent of the color c . More... | |
Color | atan2 (const Color &c, const Color &d) |
Returns a color with the elementwise arc tangent of the color c / d . More... | |
Color | ceil (const Color &c) |
Returns a color with the elementwise smallest integral value that is not less than the element in color c . More... | |
Color | clamp (const Color &c, const Color &low, const Color &high) |
Returns the color c elementwise clamped to the range [low , high ]. More... | |
Color | clamp (const Color &c, const Color &low, Float32 high) |
Returns the color c elementwise clamped to the range [low , high ]. More... | |
Color | clamp (const Color &c, Float32 low, const Color &high) |
Returns the color c elementwise clamped to the range [low , high ]. More... | |
Color | clamp (const Color &c, Float32 low, Float32 high) |
Returns the color c elementwise clamped to the range [low , high ]. More... | |
Color | cos (const Color &c) |
Returns a color with the elementwise cosine of the color c . More... | |
Color | degrees (const Color &c) |
Converts elementwise radians in c to degrees. More... | |
Color | elementwise_max (const Color &lhs, const Color &rhs) |
Returns elementwise max for each element in color lhs that is less than the corresponding element in color rhs . More... | |
Color | elementwise_min (const Color &lhs, const Color &rhs) |
Returns elementwise min for each element in color lhs that is less than the corresponding element in color rhs . More... | |
Color | exp (const Color &c) |
Returns a color with elementwise e to the power of the element in the color c . More... | |
Color | exp2 (const Color &c) |
Returns a color with elementwise 2 to the power of the element in the color c . More... | |
Color | floor (const Color &c) |
Returns a color with the elementwise largest integral value that is not greater than the element in color c . More... | |
Color | fmod (const Color &a, const Color &b) |
Returns elementwise a modulo b , in other words, the remainder of a/b. More... | |
Color | fmod (const Color &a, Float32 b) |
Returns elementwise a modulo b , in other words, the remainder of a/b. More... | |
Color | frac (const Color &c) |
Returns a color with the elementwise positive fractional part of the color c . More... | |
Color | gamma_correction (const Color &color, Float32 gamma_factor) |
Returns a gamma corrected color. More... | |
bool | is_approx_equal (const Color &lhs, const Color &rhs, Float32 e) |
Compares the two given values elementwise for equality within the given epsilon. More... | |
Color | lerp (const Color &c1, const Color &c2, const Color &t) |
Returns the elementwise linear interpolation between c1 and c2 , i.e., it returns (1-t) * c1 + t * c2 . More... | |
Color | lerp (const Color &c1, const Color &c2, Float32 t) |
Returns the linear interpolation between c1 and c2 , i.e., it returns (1-t) * c1 + t * c2 . More... | |
Color | log (const Color &c) |
Returns a color with elementwise natural logarithm of the color c . More... | |
Color | log2 (const Color &c) |
Returns a color with elementwise base 2 logarithm of the color c . More... | |
Color | log10 (const Color &c) |
Returns a color with elementwise base 10 logarithm of the color c . More... | |
Color | modf (const Color &c, Color &i) |
Returns the elementwise fractional part of c and stores the elementwise integral part of c in i . More... | |
Color | pow (const Color &a, const Color &b) |
Returns the color a elementwise to the power of b . More... | |
Color | pow (const Color &a, Float32 b) |
Returns the color a elementwise to the power of b . More... | |
Color | radians (const Color &c) |
Converts elementwise degrees in c to radians. More... | |
Color | round (const Color &c) |
Returns a color with the elements of color c rounded to nearest integers. More... | |
Color | rsqrt (const Color &c) |
Returns the reciprocal of the square root of each element of c . More... | |
Color | saturate (const Color &c) |
Returns the color c clamped elementwise to the range [0,1]. More... | |
Color | sign (const Color &c) |
Returns the elementwise sign of color c . More... | |
Color | sin (const Color &c) |
Returns a color with the elementwise sine of the color c . More... | |
void | sincos (const Color &a, Color &s, Color &c) |
Computes elementwise the sine s and cosine c of angles a simultaneously. More... | |
Color | smoothstep (const Color &a, const Color &b, const Color &c) |
Returns 0 if c is less than a and 1 if c is greater than b in an elementwise fashion. More... | |
Color | smoothstep (const Color &a, const Color &b, Float32 x) |
Returns 0 if c is less than a and 1 if c is greater than b in an elementwise fashion. More... | |
Color | sqrt (const Color &c) |
Returns the square root of each element of c . More... | |
Color | step (const Color &a, const Color &c) |
Returns elementwise 0 if c is less than a and 1 otherwise. More... | |
Color | tan (const Color &c) |
Returns a color with the elementwise tangent of the color c . More... | |
bool | isfinite (const Color &c) |
Indicates whether all components of the color are finite. More... | |
bool | isinfinite (const Color &c) |
Indicates whether any component of the color is infinite. More... | |
bool | isnan (const Color &c) |
Indicates whether any component of the color is "not a number". More... | |
MI_HOST_DEVICE_INLINE void | to_rgbe (const Color &color, Uint32 &rgbe) |
Encodes a color into RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | to_rgbe (const Color &color, Uint8 rgbe[4]) |
Encodes a color into RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | from_rgbe (const Uint8 rgbe[4], Color &color) |
Decodes a color from RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | from_rgbe (const Uint32 rgbe, Color &color) |
Decodes a color from RGBE representation. More... | |
Float32 | exp (Float32 s) |
Returns the constant e to the power of s (exponential function). More... | |
Float64 | exp (Float64 s) |
Returns the constant e to the power of s (exponential function). More... | |
Float32 | log (Float32 s) |
Returns the natural logarithm of s . More... | |
Float64 | log (Float64 s) |
Returns the natural logarithm of s . More... | |
Float32 | fast_sqrt (Float32 i) |
A fast implementation of sqrt(x) for floats. More... | |
Float32 | fast_exp (Float32 x) |
A fast implementation of exp for floats. More... | |
Float32 | fast_pow2 (Float32 x) |
A fast implementation of pow(2,x) for floats. More... | |
Float32 | fast_log2 (Float32 i) |
A fast implementation of log2(x) for floats. More... | |
Float32 | fast_pow (Float32 b, Float32 e) |
A fast implementation of pow(x,y) for floats. More... | |
Float32 | acos (Float32 s) |
Returns the arc cosine of s in radians. More... | |
Float64 | acos (Float64 s) |
Returns the arc cosine of s in radians. More... | |
bool | all (Uint8 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Uint16 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Uint32 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Uint64 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Sint8 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Sint16 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Sint32 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Sint64 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Float32 v) |
Returns true if v is not equal to zero. More... | |
bool | all (Float64 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Uint8 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Uint16 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Uint32 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Uint64 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Sint8 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Sint16 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Sint32 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Sint64 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Float32 v) |
Returns true if v is not equal to zero. More... | |
bool | any (Float64 v) |
Returns true if v is not equal to zero. More... | |
Float32 | asin (Float32 s) |
Returns the arc sine of s in radians. More... | |
Float64 | asin (Float64 s) |
Returns the arc sine of s in radians. More... | |
Float32 | atan (Float32 s) |
Returns the arc tangent of s . More... | |
Float64 | atan (Float64 s) |
Returns the arc tangent of s . More... | |
Float32 | atan2 (Float32 s, Float32 t) |
Returns the arc tangent of s / t . More... | |
Float64 | atan2 (Float64 s, Float64 t) |
Returns the arc tangent of s / t . More... | |
Float32 | ceil (Float32 s) |
Returns the smallest integral value that is not less than s . More... | |
Float64 | ceil (Float64 s) |
Returns the smallest integral value that is not less than s . More... | |
Uint8 | clamp (Uint8 s, Uint8 low, Uint8 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Uint16 | clamp (Uint16 s, Uint16 low, Uint16 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Uint32 | clamp (Uint32 s, Uint32 low, Uint32 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Uint64 | clamp (Uint64 s, Uint64 low, Uint64 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Sint8 | clamp (Sint8 s, Sint8 low, Sint8 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Sint16 | clamp (Sint16 s, Sint16 low, Sint16 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Sint32 | clamp (Sint32 s, Sint32 low, Sint32 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Sint64 | clamp (Sint64 s, Sint64 low, Sint64 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Float32 | clamp (Float32 s, Float32 low, Float32 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Float64 | clamp (Float64 s, Float64 low, Float64 high) |
Returns the value s if it is in the range [low , high ], the value low if s < low , or the value high if s > high . More... | |
Float32 | cos (Float32 a) |
Returns the cosine of a . The angle a is specified in radians. More... | |
Float64 | cos (Float64 a) |
Returns the cosine of a . The angle a is specified in radians. More... | |
Float32 | degrees (Float32 r) |
Converts radians r to degrees. More... | |
Float64 | degrees (Float64 r) |
Converts radians r to degrees. More... | |
Float32 | exp2 (Float32 s) |
Returns the constant 2 to the power of s (exponential function). More... | |
Float64 | exp2 (Float64 s) |
Returns the constant 2 to the power of s (exponential function). More... | |
Float32 | floor (Float32 s) |
Returns the largest integral value that is not greater than s . More... | |
Float64 | floor (Float64 s) |
Returns the largest integral value that is not greater than s . More... | |
Float32 | fmod (Float32 a, Float32 b) |
Returns a modulo b , in other words, the remainder of a/b. More... | |
Float64 | fmod (Float64 a, Float64 b) |
Returns a modulo b , in other words, the remainder of a/b. More... | |
Float32 | frac (Float32 s) |
Returns the positive fractional part of s . More... | |
Float64 | frac (Float64 s) |
Returns the positive fractional part of s . More... | |
bool | is_approx_equal (Float32 left, Float32 right, Float32 e) |
Compares the two given values for equality within the given epsilon. More... | |
bool | is_approx_equal (Float64 left, Float64 right, Float64 e) |
Compares the two given values for equality within the given epsilon. More... | |
Uint32 | leading_zeros (Uint32 v) |
Returns the number of leading zeros of v , 32-bit version. More... | |
Uint32 | leading_zeros (Uint64 v) |
Returns the number of leading zeros of v , 64-bit version. More... | |
Float32 | lerp (Float32 s1, Float32 s2, Float32 t) |
Returns the linear interpolation between s1 and s2 , i.e., it returns (1-t) * s1 + t * s2 . More... | |
Float64 | lerp (Float64 s1, Float64 s2, Float64 t) |
Returns the linear interpolation between s1 and s2 , i.e., it returns (1-t) * s1 + t * s2 . More... | |
Float32 | log2 (Float32 s) |
Returns the base 2 logarithm of s . More... | |
Float64 | log2 (Float64 s) |
Returns the base 2 logarithm of s . More... | |
Sint32 | log2_int (const Uint32 v) |
Returns the integer log2 of v . More... | |
Sint32 | log2_int (const Uint64 v) |
Returns the integer log2 of v . More... | |
Sint32 | log2_int (const Float32 v) |
Returns the integer log2 of v . More... | |
Sint32 | log2_int (const Float64 v) |
Returns the integer log2 of v . More... | |
template<typename Integer> | |
Sint32 | log2_int_ceil (const Integer v) |
Returns the integer log2 of v , i.e., rounded up to the next integer. More... | |
Float32 | log10 (Float32 s) |
Returns the base 10 logarithm of s . More... | |
Float64 | log10 (Float64 s) |
Returns the base 10 logarithm of s . More... | |
Float32 | modf (Float32 s, Float32 &i) |
Returns the fractional part of s and stores the integral part of s in i . More... | |
Float64 | modf (Float64 s, Float64 &i) |
Returns the fractional part of s and stores the integral part of s in i . More... | |
Uint32 | pow (Uint32 a, Uint32 b) |
Returns a to the power of b . More... | |
Uint64 | pow (Uint64 a, Uint64 b) |
Returns a to the power of b . More... | |
Sint32 | pow (Sint32 a, Sint32 b) |
Returns a to the power of b . More... | |
Sint64 | pow (Sint64 a, Sint64 b) |
Returns a to the power of b . More... | |
Float32 | pow (Float32 a, Float32 b) |
Returns a to the power of b . More... | |
Float64 | pow (Float64 a, Float64 b) |
Returns a to the power of b . More... | |
Float32 | radians (Float32 d) |
Converts degrees d to radians. More... | |
Float64 | radians (Float64 d) |
Converts degrees d to radians. More... | |
Float32 | round (Float32 s) |
Returns s rounded to the nearest integer value. More... | |
Float64 | round (Float64 s) |
Returns s rounded to the nearest integer value. More... | |
Float32 | rsqrt (Float32 s) |
Returns the reciprocal of the square root of s . More... | |
Float64 | rsqrt (Float64 s) |
Returns the reciprocal of the square root of s . More... | |
Float32 | saturate (Float32 s) |
Returns the value s clamped to the range [0,1]. More... | |
Float64 | saturate (Float64 s) |
Returns the value s clamped to the range [0,1]. More... | |
Sint8 | sign (Sint8 s) |
Returns -1 if s<0 , 0 if s==0 , and +1 if s>0 . More... | |
Sint16 | sign (Sint16 s) |
Returns -1 if s<0 , 0 if s==0 , and +1 if s>0 . More... | |
Sint32 | sign (Sint32 s) |
Returns -1 if s<0 , 0 if s==0 , and +1 if s>0 . More... | |
Sint64 | sign (Sint64 s) |
Returns -1 if s<0 , 0 if s==0 , and +1 if s>0 . More... | |
Float32 | sign (Float32 s) |
Returns -1 if s<0 , 0 if s==0 , and +1 if s>0 . More... | |
Float64 | sign (Float64 s) |
Returns -1 if s<0 , 0 if s==0 , and +1 if s>0 . More... | |
bool | sign_bit (Sint8 s) |
Returns true if s<0 and false if s>= 0. More... | |
bool | sign_bit (Sint16 s) |
Returns true if s<0 and false if s>= 0. More... | |
bool | sign_bit (Sint32 s) |
Returns true if s<0 and false if s>= 0. More... | |
bool | sign_bit (Sint64 s) |
Returns true if s<0 and false if s>= 0. More... | |
bool | sign_bit (Float32 s) |
Extracts the sign bit of a single-precision floating point number. More... | |
bool | sign_bit (Float64 s) |
Extracts the sign bit of a double-precision floating point number. More... | |
bool | isinfinite (const Float32 x) |
Checks a single-precision floating point number for "infinity". More... | |
bool | isinfinite (const Float64 x) |
Checks a double-precision floating point number for "infinity". More... | |
Float32 | sin (Float32 a) |
Returns the sine of a . The angle a is specified in radians. More... | |
Float64 | sin (Float64 a) |
Returns the sine of a . The angle a is specified in radians. More... | |
void | sincos (Float32 a, Float32 &s, Float32 &c) |
Computes the sine s and cosine c of angle a simultaneously. More... | |
void | sincos (Float64 a, Float64 &s, Float64 &c) |
Computes the sine s and cosine c of angle a simultaneously. More... | |
Float32 | smoothstep (Float32 a, Float32 b, Float32 x) |
Returns 0 if x is less than a and 1 if x is greater than b . More... | |
Float64 | smoothstep (Float64 a, Float64 b, Float64 x) |
Returns 0 if x is less than a and 1 if x is greater than b . More... | |
Float32 | sqrt (Float32 s) |
Returns the square root of s . More... | |
Float64 | sqrt (Float64 s) |
Returns the square root of s . More... | |
Float32 | step (Float32 a, Float32 x) |
Returns 0 if x is less than a and 1 otherwise. More... | |
Float64 | step (Float64 a, Float64 x) |
Returns 0 if x is less than a and 1 otherwise. More... | |
Float32 | tan (Float32 a) |
Returns the tangent of a . The angle a is specified in radians. More... | |
Float64 | tan (Float64 a) |
Returns the tangent of a . The angle a is specified in radians. More... | |
MI_HOST_DEVICE_INLINE void | to_rgbe (const Float32 color[3], Uint32 &rgbe) |
Encodes a color into RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | to_rgbe (const Float32 color[3], Uint8 rgbe[4]) |
Encodes a color into RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | from_rgbe (const Uint8 rgbe[4], Float32 color[3]) |
Decodes a color from RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | from_rgbe (const Uint32 rgbe, Float32 color[3]) |
Decodes a color from RGBE representation. More... | |
Sint32 | dot (Sint32 a, Sint32 b) |
Returns the inner product (a.k.a. dot or scalar product) of two integers. More... | |
Float32 | dot (Float32 a, Float32 b) |
Returns the inner product (a.k.a. dot or scalar product) of two scalars. More... | |
Float64 | dot (Float64 a, Float64 b) |
Returns the inner product (a.k.a. dot or scalar product) of two scalars. More... | |
template<class V> | |
V::value_type | dot (const V &lhs, const V &rhs) |
Returns the inner product (a.k.a. dot or scalar product) of two vectors. More... | |
template<class V> | |
V::value_type | square_length (const V &v) |
Returns the squared Euclidean norm of the vector v . More... | |
Float32 | length (Float32 a) |
Returns the Euclidean norm of the scalar a (its absolute value). More... | |
Float64 | length (Float64 a) |
Returns the Euclidean norm of the scalar a (its absolute value). More... | |
template<class V> | |
V::value_type | length (const V &v) |
Returns the Euclidean norm of the vector v . More... | |
template<class V> | |
V::value_type | square_euclidean_distance (const V &lhs, const V &rhs) |
Returns the squared Euclidean distance from the vector lhs to the vector rhs . More... | |
template<class V> | |
V::value_type | euclidean_distance (const V &lhs, const V &rhs) |
Returns the Euclidean distance from the vector lhs to the vector rhs . More... | |
template<class V> | |
void | set_bounds (V &v, const V &low, const V &high) |
Bounds the value of vector v elementwise to the given low and high vector values. More... | |
template<class V> | |
bool | is_equal (const V &lhs, const V &rhs) |
Returns true if vector lhs is elementwise equal to vector rhs , and false otherwise. More... | |
template<class V> | |
bool | is_not_equal (const V &lhs, const V &rhs) |
Returns true if vector lhs is elementwise not equal to vector rhs , and false otherwise. More... | |
template<class V> | |
bool | lexicographically_less (const V &lhs, const V &rhs) |
Returns true if vector lhs is lexicographically less than vector rhs , and false otherwise. More... | |
template<class V> | |
bool | lexicographically_less_or_equal (const V &lhs, const V &rhs) |
Returns true if vector lhs is lexicographically less than or equal to vector rhs , and false otherwise. More... | |
template<class V> | |
bool | lexicographically_greater (const V &lhs, const V &rhs) |
Returns true if vector lhs is lexicographically greater than vector rhs , and false otherwise. More... | |
template<class V> | |
bool | lexicographically_greater_or_equal (const V &lhs, const V &rhs) |
Returns true if vector lhs is lexicographically greater than or equal to vector rhs , and false otherwise. More... | |
template<class V> | |
Comparison_result | lexicographically_compare (const V &lhs, const V &rhs) |
Compares two vectors lexicographically. More... | |
template<typename T , Size ROW, Size COL> | |
T * | matrix_base_ptr (Matrix_struct<T, ROW, COL> &mat) |
Returns the base pointer to the matrix data. More... | |
template<typename T , Size ROW, Size COL> | |
const T * | matrix_base_ptr (const Matrix_struct<T, ROW, COL> &mat) |
Returns the base pointer to the matrix data. More... | |
template<typename T , Size ROW, Size COL> | |
bool | operator== (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is elementwise equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | operator!= (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is elementwise not equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | operator< (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically less than rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | operator<= (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically less than or equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | operator> (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically greater than rhs . More... | |
template<typename T , Size ROW, Size COL> | |
bool | operator>= (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Returns true if lhs is lexicographically greater than or equal to rhs . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | operator+= (Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Adds rhs elementwise to lhs and returns the modified lhs . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | operator-= (Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Subtracts rhs elementwise from lhs and returns the modified lhs . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | operator+ (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Adds lhs and rhs elementwise and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | operator- (const Matrix<T, ROW, COL> &lhs, const Matrix<T, ROW, COL> &rhs) |
Subtracts rhs elementwise from lhs and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | operator- (const Matrix<T, ROW, COL> &mat) |
Negates the matrix mat elementwise and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | operator*= (Matrix<T, ROW, COL> &lhs, const Matrix<T, COL, COL> &rhs) |
Performs matrix multiplication, lhs times rhs , assigns it to lhs , and returns the modified lhs . More... | |
template<typename T , Size ROW1, Size COL1, Size ROW2, Size COL2> | |
Matrix<T, ROW1, COL2> | operator* (const Matrix<T, ROW1, COL1> &lhs, const Matrix<T, ROW2, COL2> &rhs) |
Performs matrix multiplication, lhs times rhs , and returns the new result. More... | |
template<typename T , Size ROW, Size COL, Size DIM> | |
Vector<T, ROW> | operator* (const Matrix<T, ROW, COL> &mat, const Vector<T, DIM> &vec) |
Multiplies the (column) vector vec from the right with the matrix mat and returns the resulting vector. More... | |
template<Size DIM, typename T , Size ROW, Size COL> | |
Vector<T, COL> | operator* (const Vector<T, DIM> &vec, const Matrix<T, ROW, COL> &mat) |
Multiplies the (row) vector vec from the left with the matrix mat and returns the resulting vector. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> & | operator*= (Matrix<T, ROW, COL> &mat, T factor) |
Multiplies the matrix mat elementwise with the scalar factor and returns the modified matrix mat . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | operator* (const Matrix<T, ROW, COL> &mat, T factor) |
Multiplies the matrix mat elementwise with the scalar factor and returns the new result. More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, ROW, COL> | operator* (T factor, const Matrix<T, ROW, COL> &mat) |
Multiplies the matrix mat elementwise with the scalar factor and returns the new result. More... | |
template<Size NEW_ROW, Size NEW_COL, typename T , Size ROW, Size COL> | |
Matrix< T, NEW_ROW, NEW_COL > | sub_matrix (const Matrix<T, ROW, COL> &mat) |
Returns the upper-left sub-matrix of size NEW_ROW times NEW_COL . More... | |
template<typename T , Size ROW, Size COL> | |
Matrix<T, COL, ROW> | transpose (const Matrix<T, ROW, COL> &mat) |
Returns the transpose of the matrix mat by exchanging rows and columns. More... | |
template<typename T , typename U> | |
U | transform_point (const Matrix<T, 4, 4> &mat, const U &point) |
Returns a transformed 1D point by applying the full transformation in the 4x4 matrix mat on the 1D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 2> | transform_point (const Matrix<T, 4, 4> &mat, const Vector<U, 2> &point) |
Returns a transformed 2D point by applying the full transformation in the 4x4 matrix mat on the 2D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_point (const Matrix<T, 4, 3> &mat, const Vector<U, 3> &point) |
Returns a transformed 3D point by applying the full transformation in the 4x3 matrix mat on the 3D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_point (const Matrix<T, 4, 4> &mat, const Vector<U, 3> &point) |
Returns a transformed 3D point by applying the full transformation in the 4x4 matrix mat on the 3D point point , which includes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 4> | transform_point (const Matrix<T, 4, 4> &mat, const Vector<U, 4> &point) |
Returns a transformed 4D point by applying the full transformation in the 4x4 matrix mat on the 4D point point , which includes the translation. More... | |
template<typename T , typename U> | |
U | transform_vector (const Matrix<T, 4, 4> &mat, const U &vector) |
Returns a transformed 1D vector by applying the 1x1 linear sub-transformation in the 4x4 matrix mat on the 1D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 2> | transform_vector (const Matrix<T, 4, 4> &mat, const Vector<U, 2> &vector) |
Returns a transformed 2D vector by applying the 2x2 linear sub-transformation in the 4x4 matrix mat on the 2D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_vector (const Matrix<T, 3, 3> &mat, const Vector<U, 3> &vector) |
Returns a transformed 3D vector by applying the 3x3 matrix mat transformation on the 3D vector vector . More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_vector (const Matrix<T, 4, 3> &mat, const Vector<U, 3> &vector) |
Returns a transformed 3D vector by applying the 3x3 linear sub-transformation in the 4x3 matrix mat on the 3D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_vector (const Matrix<T, 4, 4> &mat, const Vector<U, 3> &vector) |
Returns a transformed 3D vector by applying the 3x3 linear sub-transformation in the 4x4 matrix mat on the 3D vector vector , which excludes the translation. More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_normal_inv (const Matrix<T, 3, 3> &inv_mat, const Vector<U, 3> &normal) |
Returns an inverse transformed 3D normal vector by applying the 3x3 transposed linear transformation in the matrix inv_mat on the 3D normal vector normal . More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_normal_inv (const Matrix<T, 4, 4> &inv_mat, const Vector<U, 3> &normal) |
Returns an inverse transformed 3D normal vector by applying the 3x3 transposed linear sub-transformation in the 4x4 matrix inv_mat on the 3D normal vector normal . More... | |
template<typename T , typename U> | |
Vector<U, 3> | transform_normal (const Matrix<T, 4, 4> &mat, const Vector<U, 3> &normal) |
Returns a transformed 3D normal vector by applying the 3x3 transposed linear sub-transformation in the inverse of the 4x4 matrix mat on the 3D normal vector normal . More... | |
bool | operator== (const Spectrum &lhs, const Spectrum &rhs) |
Returns true if lhs is elementwise equal to rhs . More... | |
bool | operator!= (const Spectrum &lhs, const Spectrum &rhs) |
Returns true if lhs is elementwise not equal to rhs . More... | |
bool | operator< (const Spectrum &lhs, const Spectrum &rhs) |
Returns true if lhs is lexicographically less than rhs . More... | |
bool | operator<= (const Spectrum &lhs, const Spectrum &rhs) |
Returns true if lhs is lexicographically less than or equal to rhs . More... | |
bool | operator> (const Spectrum &lhs, const Spectrum &rhs) |
Returns true if lhs is lexicographically greater than rhs . More... | |
bool | operator>= (const Spectrum &lhs, const Spectrum &rhs) |
Returns true if lhs is lexicographically greater than or equal to rhs . More... | |
Spectrum & | operator+= (Spectrum &lhs, const Spectrum &rhs) |
Adds rhs elementwise to lhs and returns the modified lhs . More... | |
Spectrum & | operator-= (Spectrum &lhs, const Spectrum &rhs) |
Subtracts rhs elementwise from lhs and returns the modified lhs . More... | |
Spectrum & | operator*= (Spectrum &lhs, const Spectrum &rhs) |
Multiplies rhs elementwise with lhs and returns the modified lhs . More... | |
Spectrum & | operator/= (Spectrum &lhs, const Spectrum &rhs) |
Divides lhs elementwise by rhs and returns the modified lhs . More... | |
Spectrum | operator+ (const Spectrum &lhs, const Spectrum &rhs) |
Adds lhs and rhs elementwise and returns the new result. More... | |
Spectrum | operator- (const Spectrum &lhs, const Spectrum &rhs) |
Subtracts rhs elementwise from lhs and returns the new result. More... | |
Spectrum | operator* (const Spectrum &lhs, const Spectrum &rhs) |
Multiplies rhs elementwise with lhs and returns the new result. More... | |
Spectrum | operator/ (const Spectrum &lhs, const Spectrum &rhs) |
Divides rhs elementwise by lhs and returns the new result. More... | |
Spectrum | operator- (const Spectrum &c) |
Negates the spectrum c elementwise and returns the new result. More... | |
Spectrum & | operator*= (Spectrum &c, Float32 s) |
Multiplies the spectrum c elementwise with the scalar s and returns the modified spectrum c . More... | |
Spectrum & | operator/= (Spectrum &c, Float32 s) |
Divides the spectrum c elementwise by the scalar s and returns the modified spectrum c . More... | |
Spectrum | operator* (const Spectrum &c, Float32 s) |
Multiplies the spectrum c elementwise with the scalar s and returns the new result. More... | |
Spectrum | operator* (Float32 s, const Spectrum &c) |
Multiplies the spectrum c elementwise with the scalar s and returns the new result. More... | |
Spectrum | operator/ (const Spectrum &c, Float32 s) |
Divides the spectrum c elementwise by the scalar s and returns the new result. More... | |
Spectrum | abs (const Spectrum &c) |
Returns a spectrum with the elementwise absolute values of the spectrum c . More... | |
Spectrum | acos (const Spectrum &c) |
Returns a spectrum with the elementwise arc cosine of the spectrum c . More... | |
bool | all (const Spectrum &c) |
Returns true if all elements of c are not equal to zero. More... | |
bool | any (const Spectrum &c) |
Returns true if any element of c is not equal to zero. More... | |
Spectrum | asin (const Spectrum &c) |
Returns a spectrum with the elementwise arc sine of the spectrum c . More... | |
Spectrum | atan (const Spectrum &c) |
Returns a spectrum with the elementwise arc tangent of the spectrum c . More... | |
Spectrum | atan2 (const Spectrum &c, const Spectrum &d) |
Returns a spectrum with the elementwise arc tangent of the spectrum c / d . More... | |
Spectrum | ceil (const Spectrum &c) |
Returns a spectrum with the elementwise smallest integral value that is not less than the element in spectrum c . More... | |
Spectrum | clamp (const Spectrum &c, const Spectrum &low, const Spectrum &high) |
Returns the spectrum c elementwise clamped to the range [low , high ]. More... | |
Spectrum | clamp (const Spectrum &c, const Spectrum &low, Float32 high) |
Returns the spectrum c elementwise clamped to the range [low , high ]. More... | |
Spectrum | clamp (const Spectrum &c, Float32 low, const Spectrum &high) |
Returns the spectrum c elementwise clamped to the range [low , high ]. More... | |
Spectrum | clamp (const Spectrum &c, Float32 low, Float32 high) |
Returns the spectrum c elementwise clamped to the range [low , high ]. More... | |
Spectrum | cos (const Spectrum &c) |
Returns a spectrum with the elementwise cosine of the spectrum c . More... | |
Spectrum | degrees (const Spectrum &c) |
Converts elementwise radians in c to degrees. More... | |
Spectrum | elementwise_max (const Spectrum &lhs, const Spectrum &rhs) |
Returns elementwise max for each element in spectrum lhs that is less than the corresponding element in spectrum rhs . More... | |
Spectrum | elementwise_min (const Spectrum &lhs, const Spectrum &rhs) |
Returns elementwise min for each element in spectrum lhs that is less than the corresponding element in spectrum rhs . More... | |
Spectrum | exp (const Spectrum &c) |
Returns a spectrum with elementwise e to the power of the element in the spectrum c . More... | |
Spectrum | exp2 (const Spectrum &c) |
Returns a spectrum with elementwise 2 to the power of the element in the spectrum c . More... | |
Spectrum | floor (const Spectrum &c) |
Returns a spectrum with the elementwise largest integral value that is not greater than the element in spectrum c . More... | |
Spectrum | fmod (const Spectrum &a, const Spectrum &b) |
Returns elementwise a modulo b , in other words, the remainder of a/b. More... | |
Spectrum | fmod (const Spectrum &a, Float32 b) |
Returns elementwise a modulo b , in other words, the remainder of a/b. More... | |
Spectrum | frac (const Spectrum &c) |
Returns a spectrum with the elementwise positive fractional part of the spectrum c . More... | |
Spectrum | gamma_correction (const Spectrum &spectrum, Float32 gamma_factor) |
Returns a gamma corrected spectrum. More... | |
bool | is_approx_equal (const Spectrum &lhs, const Spectrum &rhs, Float32 e) |
Compares the two given values elementwise for equality within the given epsilon. More... | |
Spectrum | lerp (const Spectrum &c1, const Spectrum &c2, const Spectrum &t) |
Returns the elementwise linear interpolation between c1 and c2 , i.e., it returns (1-t) * c1 + t * c2 . More... | |
Spectrum | lerp (const Spectrum &c1, const Spectrum &c2, Float32 t) |
Returns the linear interpolation between c1 and c2 , i.e., it returns (1-t) * c1 + t * c2 . More... | |
Spectrum | log (const Spectrum &c) |
Returns a spectrum with elementwise natural logarithm of the spectrum c . More... | |
Spectrum | log2 (const Spectrum &c) |
Returns a spectrum with elementwise base 2 logarithm of the spectrum c . More... | |
Spectrum | log10 (const Spectrum &c) |
Returns a spectrum with elementwise base 10 logarithm of the spectrum c . More... | |
Spectrum | modf (const Spectrum &c, Spectrum &i) |
Returns the elementwise fractional part of c and stores the elementwise integral part of c in i . More... | |
Spectrum | pow (const Spectrum &a, const Spectrum &b) |
Returns the spectrum a elementwise to the power of b . More... | |
Spectrum | pow (const Spectrum &a, Float32 b) |
Returns the spectrum a elementwise to the power of b . More... | |
Spectrum | radians (const Spectrum &c) |
Converts elementwise degrees in c to radians. More... | |
Spectrum | round (const Spectrum &c) |
Returns a spectrum with the elements of spectrum c rounded to nearest integers. More... | |
Spectrum | rsqrt (const Spectrum &c) |
Returns the reciprocal of the square root of each element of c . More... | |
Spectrum | saturate (const Spectrum &c) |
Returns the spectrum c clamped elementwise to the range [0,1]. More... | |
Spectrum | sign (const Spectrum &c) |
Returns the elementwise sign of spectrum c . More... | |
Spectrum | sin (const Spectrum &c) |
Returns a spectrum with the elementwise sine of the spectrum c . More... | |
void | sincos (const Spectrum &a, Spectrum &s, Spectrum &c) |
Computes elementwise the sine s and cosine c of angles a simultaneously. More... | |
Spectrum | smoothstep (const Spectrum &a, const Spectrum &b, const Spectrum &c) |
Returns 0 if c is less than a and 1 if c is greater than b in an elementwise fashion. More... | |
Spectrum | smoothstep (const Spectrum &a, const Spectrum &b, Float32 x) |
Returns 0 if c is less than a and 1 if c is greater than b in an elementwise fashion. More... | |
Spectrum | sqrt (const Spectrum &c) |
Returns the square root of each element of c . More... | |
Spectrum | step (const Spectrum &a, const Spectrum &c) |
Returns elementwise 0 if c is less than a and 1 otherwise. More... | |
Spectrum | tan (const Spectrum &c) |
Returns a spectrum with the elementwise tangent of the spectrum c . More... | |
bool | isfinite (const Spectrum &c) |
Indicates whether all components of the spectrum are finite. More... | |
bool | isinfinite (const Spectrum &c) |
Indicates whether any component of the spectrum is infinite. More... | |
bool | isnan (const Spectrum &c) |
Indicates whether any component of the spectrum is "not a number". More... | |
MI_HOST_DEVICE_INLINE void | to_rgbe (const Spectrum &c, Uint32 &rgbe) |
Encodes a spectrum into RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | to_rgbe (const Spectrum &c, Uint8 rgbe[4]) |
Encodes a spectrum into RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | from_rgbe (const Uint8 rgbe[4], Spectrum &c) |
Decodes a color from RGBE representation. More... | |
MI_HOST_DEVICE_INLINE void | from_rgbe (const Uint32 rgbe, Spectrum &c) |
Decodes a color from RGBE representation. More... | |
template<typename T , Size DIM> | |
T * | vector_base_ptr (Vector_struct<T, DIM> &vec) |
Returns the base pointer to the vector data. More... | |
template<typename T , Size DIM> | |
const T * | vector_base_ptr (const Vector_struct<T, DIM> &vec) |
Returns the base pointer to the vector data. More... | |
template<typename T> | |
T * | vector_base_ptr (Vector_struct<T, 1> &vec) |
Returns the base pointer to the vector data, specialization for DIM==1 . More... | |
template<typename T> | |
const T * | vector_base_ptr (const Vector_struct<T, 1> &vec) |
Returns the base pointer to the vector data, specialization for DIM==1 . More... | |
template<typename T> | |
T * | vector_base_ptr (Vector_struct<T, 2> &vec) |
Returns the base pointer to the vector data, specialization for DIM==2 . More... | |
template<typename T> | |
const T * | vector_base_ptr (const Vector_struct<T, 2> &vec) |
Returns the base pointer to the vector data, specialization for DIM==2 . More... | |
template<typename T> | |
T * | vector_base_ptr (Vector_struct<T, 3> &vec) |
Returns the base pointer to the vector data, specialization for DIM==3 . More... | |
template<typename T> | |
const T * | vector_base_ptr (const Vector_struct<T, 3> &vec) |
Returns the base pointer to the vector data, specialization for DIM==3 . More... | |
template<typename T> | |
T * | vector_base_ptr (Vector_struct<T, 4> &vec) |
Returns the base pointer to the vector data, specialization for DIM==4 . More... | |
template<typename T> | |
const T * | vector_base_ptr (const Vector_struct<T, 4> &vec) |
Returns the base pointer to the vector data, specialization for DIM==4 . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator+= (Vector<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Adds rhs elementwise to lhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator-= (Vector<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Subtracts rhs elementwise from lhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator*= (Vector<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Multiplies rhs elementwise with lhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator%= (Vector<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Computes lhs modulo rhs elementwise and returns the modified lhs . More... | |
template<typename T , typename U , Size DIM> | |
Vector<T, DIM> & | operator/= (Vector<T, DIM> &lhs, const Vector_struct<U, DIM> &rhs) |
Divides lhs elementwise by rhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator+ (const Vector_struct<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Adds lhs and rhs elementwise and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator- (const Vector_struct<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Subtracts rhs elementwise from lhs and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator* (const Vector_struct<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Multiplies rhs elementwise with lhs and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator% (const Vector_struct<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Computes lhs modulo rhs elementwise and returns the new result. More... | |
template<typename T , typename U , Size DIM> | |
Vector<T, DIM> | operator/ (const Vector_struct<T, DIM> &lhs, const Vector_struct<U, DIM> &rhs) |
Divides rhs elementwise by lhs and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator- (const Vector_struct<T, DIM> &v) |
Negates the vector v elementwise and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator+= (Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Adds rhs elementwise to lhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator-= (Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Subtracts rhs elementwise from lhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator*= (Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Multiplies rhs elementwise with lhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator%= (Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Computes lhs modulo rhs elementwise and returns the modified lhs . More... | |
template<typename T , typename U , Size DIM> | |
Vector<T, DIM> & | operator/= (Vector<T, DIM> &lhs, const Vector<U, DIM> &rhs) |
Divides lhs elementwise by rhs and returns the modified lhs . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator+ (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Adds lhs and rhs elementwise and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator- (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Subtracts rhs elementwise from lhs and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator* (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Multiplies rhs elementwise with lhs and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator% (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Computes lhs modulo rhs elementwise and returns the new result. More... | |
template<typename T , typename U , Size DIM> | |
Vector<T, DIM> | operator/ (const Vector<T, DIM> &lhs, const Vector<U, DIM> &rhs) |
Divides rhs elementwise by lhs and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | operator- (const Vector<T, DIM> &v) |
Negates the vector v elementwise and returns the new result. More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> & | operator*= (Vector<T, DIM> &v, TT s) |
Multiplies the vector v elementwise with the scalar s and returns the modified vector v . More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> & | operator%= (Vector<T, DIM> &v, TT s) |
Computes v modulo s elementwise and returns the modified vector v . More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> & | operator/= (Vector<T, DIM> &v, TT s) |
Divides the vector v elementwise by the scalar s and returns the modified vector v . More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> | operator* (const Vector_struct<T, DIM> &v, TT s) |
Multiplies the vector v elementwise with the scalar s and returns the new result. More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> | operator* (TT s, const Vector_struct<T, DIM> &v) |
Multiplies the vector v elementwise with the scalar s and returns the new result. More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> | operator% (const Vector_struct<T, DIM> &v, TT s) |
Computes v modulo s elementwise and returns the new result. More... | |
template<typename T , typename TT , Size DIM> | |
Vector<T, DIM> | operator/ (const Vector_struct<T, DIM> &v, TT s) |
Divides the vector v elementwise by the scalar s and returns the new result. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator++ (Vector<T, DIM> &vec) |
Pre-increments all elements of vec and returns the result. Modifies vec . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> & | operator-- (Vector<T, DIM> &vec) |
Pre-decrements all elements of vec and returns the result. Modifies vec . More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator&& (const Vector<bool, DIM> &lhs, const Vector<bool, DIM> &rhs) |
Returns the elementwise logical and of two boolean vectors. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator&& (bool lhs, const Vector<bool, DIM> &rhs) |
Returns the elementwise logical and of a bool and a boolean vector. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator&& (const Vector<bool, DIM> &lhs, bool rhs) |
Returns the elementwise logical and of a boolean vector and a bool. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator|| (const Vector<bool, DIM> &lhs, const Vector<bool, DIM> &rhs) |
Returns the elementwise logical or of two boolean vectors. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator|| (bool lhs, const Vector<bool, DIM> &rhs) |
Returns the elementwise logical or of a bool and a boolean vector. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator|| (const Vector<bool, DIM> &lhs, bool rhs) |
Returns the elementwise logical or of a boolean vector and a bool. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator^ (const Vector<bool, DIM> &lhs, const Vector<bool, DIM> &rhs) |
Returns the elementwise logical xor of two boolean vectors. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator^ (bool lhs, const Vector<bool, DIM> &rhs) |
Returns the elementwise logical xor of a bool and a boolean vector. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator^ (const Vector<bool, DIM> &lhs, bool rhs) |
Returns the elementwise logical xor of a boolean vector and a bool. More... | |
template<Size DIM> | |
Vector<bool, DIM> | operator! (const Vector<bool, DIM> &vec) |
Returns the elementwise logical not of a boolean vector. More... | |
template<typename T , Size DIM> | |
Vector<bool, DIM> | elementwise_is_equal (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Returns the boolean vector result of an elementwise equality comparison. More... | |
template<typename T , Size DIM> | |
Vector<bool, DIM> | elementwise_is_not_equal (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Returns the boolean vector result of an elementwise inequality comparison. More... | |
template<typename T , Size DIM> | |
Vector<bool, DIM> | elementwise_is_less_than (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Returns the boolean vector result of an elementwise less-than comparison. More... | |
template<typename T , Size DIM> | |
Vector<bool, DIM> | elementwise_is_less_than_or_equal (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Returns the boolean vector result of an elementwise less-than-or-equal comparison. More... | |
template<typename T , Size DIM> | |
Vector<bool, DIM> | elementwise_is_greater_than (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Returns the boolean vector result of an elementwise greater-than comparison. More... | |
template<typename T , Size DIM> | |
Vector<bool, DIM> | elementwise_is_greater_than_or_equal (const Vector<T, DIM> &lhs, const Vector<T, DIM> &rhs) |
Returns the boolean vector result of an elementwise greater-than-or-equal comparison. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | abs (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise absolute values of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | acos (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise arc cosine of the vector v . More... | |
template<typename T , Size DIM> | |
bool | all (const Vector_struct<T, DIM> &v) |
Returns true if all of all elements of v returns true . More... | |
template<typename T , Size DIM> | |
bool | any (const Vector_struct<T, DIM> &v) |
Returns true if any of any element of v returns true . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | asin (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise arc sine of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | atan (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise arc tangent of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | atan2 (const Vector_struct<T, DIM> &v, const Vector_struct<T, DIM> &w) |
Returns a vector with the elementwise arc tangent of the vector v / w . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | ceil (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise smallest integral value that is not less than the element in vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | clamp (const Vector_struct<T, DIM> &v, const Vector_struct<T, DIM> &low, const Vector_struct<T, DIM> &high) |
Returns the vector v elementwise clamped to the range [low , high ]. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | clamp (const Vector_struct<T, DIM> &v, const Vector_struct<T, DIM> &low, T high) |
Returns the vector v elementwise clamped to the range [low , high ]. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | clamp (const Vector_struct<T, DIM> &v, T low, const Vector_struct<T, DIM> &high) |
Returns the vector v elementwise clamped to the range [low , high ]. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | clamp (const Vector_struct<T, DIM> &v, T low, T high) |
Returns the vector v elementwise clamped to the range [low , high ]. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | cos (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise cosine of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | degrees (const Vector_struct<T, DIM> &v) |
Converts elementwise radians in v to degrees. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | elementwise_max (const Vector_struct<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Returns elementwise maximum of two vectors. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | elementwise_min (const Vector_struct<T, DIM> &lhs, const Vector_struct<T, DIM> &rhs) |
Returns elementwise minimum of two vectors. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | exp (const Vector_struct<T, DIM> &v) |
Returns a vector with elementwise e to the power of the element in the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | exp2 (const Vector_struct<T, DIM> &v) |
Returns a vector with elementwise 2 to the power of the element in the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | floor (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise largest integral value that is not greater than the element in vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | fmod (const Vector_struct<T, DIM> &a, const Vector_struct<T, DIM> &b) |
Returns elementwise a modulo b , in other words, the remainder of a/b. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | fmod (const Vector_struct<T, DIM> &a, T b) |
Returns elementwise a modulo b , in other words, the remainder of a/b. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | frac (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise positive fractional part of the vector v . More... | |
template<typename T , Size DIM> | |
bool | is_approx_equal (const Vector_struct<T, DIM> &left, const Vector_struct<T, DIM> &right, T e) |
Compares the two given values elementwise for equality within the given epsilon. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | lerp (const Vector_struct<T, DIM> &v1, const Vector_struct<T, DIM> &v2, const Vector_struct<T, DIM> &t) |
Returns the elementwise linear interpolation between v1 and v2 , i.e., it returns (1-t) * v1 + t * v2 . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | lerp (const Vector_struct<T, DIM> &v1, const Vector_struct<T, DIM> &v2, T t) |
Returns the linear interpolation between v1 and v2 , i.e., it returns (1-t) * v1 + t * v2 . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | log (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise natural logarithm of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | log2 (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise base 2 logarithm of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | log10 (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise base 10 logarithm of the vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | modf (const Vector_struct<T, DIM> &v, Vector<T, DIM> &i) |
Returns the elementwise fractional part of v and stores the elementwise integral part of v in i . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | pow (const Vector_struct<T, DIM> &a, const Vector_struct<T, DIM> &b) |
Returns the vector a elementwise to the power of b . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | pow (const Vector_struct<T, DIM> &a, T b) |
Returns the vector a elementwise to the power of b . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | radians (const Vector_struct<T, DIM> &v) |
Converts elementwise degrees in v to radians. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | round (const Vector_struct<T, DIM> &v) |
Returns a vector with the elements of vector v rounded to nearest integers. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | rsqrt (const Vector_struct<T, DIM> &v) |
Returns the reciprocal of the square root of each element of v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | saturate (const Vector_struct<T, DIM> &v) |
Returns the vector v clamped elementwise to the range [0,1]. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | sign (const Vector_struct<T, DIM> &v) |
Returns the elementwise sign of vector v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | sin (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise sine of the vector v . More... | |
template<typename T , Size DIM> | |
void | sincos (const Vector_struct<T, DIM> &a, Vector<T, DIM> &s, Vector<T, DIM> &c) |
Computes elementwise the sine s and cosine c of angles a simultaneously. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | smoothstep (const Vector_struct<T, DIM> &a, const Vector_struct<T, DIM> &b, const Vector_struct<T, DIM> &v) |
Returns 0 if v is less than a and 1 if v is greater than b in an elementwise fashion. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | smoothstep (const Vector_struct<T, DIM> &a, const Vector_struct<T, DIM> &b, T x) |
Returns 0 if x is less than a and 1 if x is greater than b in an elementwise fashion. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | sqrt (const Vector_struct<T, DIM> &v) |
Returns the square root of each element of v . More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | step (const Vector_struct<T, DIM> &a, const Vector_struct<T, DIM> &v) |
Returns elementwise 0 if v is less than a and 1 otherwise. More... | |
template<typename T , Size DIM> | |
Vector<T, DIM> | tan (const Vector_struct<T, DIM> &v) |
Returns a vector with the elementwise tangent of the vector v . More... | |
template<typename T> | |
T | cross (const Vector_struct<T, 2> &lhs, const Vector_struct<T, 2> &rhs) |
Returns the two-times-two determinant result for the two vectors lhs and rhs . More... | |
template<typename T> | |
Vector<T, 3> | cross (const Vector_struct<T, 3> &lhs, const Vector_struct<T, 3> &rhs) |
Returns the three-dimensional cross product result for the two vectors lhs and rhs . More... | |
template<typename T> | |
void | make_basis (const Vector<T, 3> &n, Vector<T, 3> *u, Vector<T, 3> *v) |
Computes a basis of 3D space with one given vector. More... | |
template<typename T> | |
void | make_basis (const Vector<T, 3> &n, const Vector<T, 3> &u, const Vector<T, 3> &v, Vector<T, 3> *t, Vector<T, 3> *b) |
Computes a basis of 3D space with one given vector, plane, and direction. More... | |
template<typename T2 , Size DIM2, typename T1 , Size DIM1> | |
Vector<T2, DIM2> | convert_vector (const Vector<T1, DIM1> &v, const T2 &fill=T2(0)) |
Converts the vector v of type Vector<T1, DIM1> to a vector of type Vector<T2, DIM2> . More... | |
Namespace for the Math API.