Math utilities

## Description

An abstract class for solving linear systems on GPUs. Specific solution methods are implemented in derived classes

Class for converting Chrono data structure to/from FSI data structure.

Collaboration diagram for Math utilities:

## Macros

#define __VECTOR_FUNCTIONS_DECL__   static __inline__ __host__ __device__

## Typedefs

typedef float chrono::fsi::Real

typedef unsigned int chrono::fsi::uint

typedef unsigned short chrono::fsi::ushort

## Functions

__host__ __device__ float chrono::fsi::fminf (float a, float b)
Return the minimum of two single precision numbers.

__host__ __device__ float chrono::fsi::fmaxf (float a, float b)
Return the maximum of two single precision numbers.

__host__ __device__ int chrono::fsi::max (int a, int b)
Return the maximum of two integer numbers.

__host__ __device__ int chrono::fsi::min (int a, int b)
Return the minimum of two integer numbers.

__host__ __device__ float chrono::fsi::rsqrtf (float x)
Return the reciprocal square root of a single precision number.

__host__ __device__ Real chrono::fsi::square (Real a)
Square a float value.

__host__ __device__ Real chrono::fsi::cube (Real a)
Cube a float value.

__VECTOR_FUNCTIONS_DECL__ uint2 chrono::fsi::make_uint2 (unsigned int x, unsigned int y)

__VECTOR_FUNCTIONS_DECL__ uint3 chrono::fsi::make_uint3 (unsigned int x, unsigned int y, unsigned int z)

__VECTOR_FUNCTIONS_DECL__ uint4 chrono::fsi::make_uint4 (unsigned int x, unsigned int y, unsigned int z, unsigned int w)

__VECTOR_FUNCTIONS_DECL__ int2 chrono::fsi::make_int2 (int x, int y)

__VECTOR_FUNCTIONS_DECL__ int3 chrono::fsi::make_int3 (int x, int y, int z)

__VECTOR_FUNCTIONS_DECL__ int4 chrono::fsi::make_int4 (int x, int y, int z, int w)

__VECTOR_FUNCTIONS_DECL__ float2 chrono::fsi::make_float2 (float x, float y)

__VECTOR_FUNCTIONS_DECL__ float3 chrono::fsi::make_float3 (float x, float y, float z)

__VECTOR_FUNCTIONS_DECL__ float4 chrono::fsi::make_float4 (float x, float y, float z, float w)

__VECTOR_FUNCTIONS_DECL__ double2 chrono::fsi::make_double2 (double x, double y)

__VECTOR_FUNCTIONS_DECL__ double3 chrono::fsi::make_double3 (double x, double y, double z)

__VECTOR_FUNCTIONS_DECL__ double4 chrono::fsi::make_double4 (double x, double y, double z, double w)

__host__ __device__ float2 chrono::fsi::make_float2 (float s)

__host__ __device__ float2 chrono::fsi::make_float2 (float3 a)

__host__ __device__ float2 chrono::fsi::make_float2 (int2 a)

__host__ __device__ float2 chrono::fsi::make_float2 (uint2 a)

__host__ __device__ int2 chrono::fsi::make_int2 (int s)

__host__ __device__ int2 chrono::fsi::make_int2 (int3 a)

__host__ __device__ int2 chrono::fsi::make_int2 (int4 a)

__host__ __device__ int2 chrono::fsi::make_int2 (uint2 a)

__host__ __device__ int2 chrono::fsi::make_int2 (float2 a)

__host__ __device__ uint2 chrono::fsi::make_uint2 (uint s)

__host__ __device__ uint2 chrono::fsi::make_uint2 (uint3 a)

__host__ __device__ uint2 chrono::fsi::make_uint2 (int2 a)

__host__ __device__ float3 chrono::fsi::make_float3 (float s)

__host__ __device__ float3 chrono::fsi::make_float3 (float2 a)

__host__ __device__ float3 chrono::fsi::make_float3 (float2 a, float s)

__host__ __device__ float3 chrono::fsi::make_float3 (float4 a)

__host__ __device__ float3 chrono::fsi::make_float3 (int3 a)

__host__ __device__ float3 chrono::fsi::make_float3 (uint3 a)

__host__ __device__ int3 chrono::fsi::make_int3 (int s)

__host__ __device__ int3 chrono::fsi::make_int3 (int2 a)

__host__ __device__ int3 chrono::fsi::make_int3 (int2 a, int s)

__host__ __device__ int3 chrono::fsi::make_int3 (uint3 a)

__host__ __device__ int3 chrono::fsi::make_int3 (float3 a)

__host__ __device__ uint3 chrono::fsi::make_uint3 (uint s)

__host__ __device__ uint3 chrono::fsi::make_uint3 (uint2 a)

__host__ __device__ uint3 chrono::fsi::make_uint3 (uint2 a, uint s)

__host__ __device__ uint3 chrono::fsi::make_uint3 (uint4 a)

__host__ __device__ uint3 chrono::fsi::make_uint3 (int3 a)

__host__ __device__ float4 chrono::fsi::make_float4 (float s)

__host__ __device__ float4 chrono::fsi::make_float4 (float3 a)

__host__ __device__ float4 chrono::fsi::make_float4 (float3 a, float w)

__host__ __device__ float4 chrono::fsi::make_float4 (int4 a)

__host__ __device__ float4 chrono::fsi::make_float4 (uint4 a)

__host__ __device__ int4 chrono::fsi::make_int4 (int s)

__host__ __device__ int4 chrono::fsi::make_int4 (int3 a)

__host__ __device__ int4 chrono::fsi::make_int4 (int3 a, int w)

__host__ __device__ int4 chrono::fsi::make_int4 (uint4 a)

__host__ __device__ int4 chrono::fsi::make_int4 (float4 a)

__host__ __device__ uint4 chrono::fsi::make_uint4 (uint s)

__host__ __device__ uint4 chrono::fsi::make_uint4 (uint3 a)

__host__ __device__ uint4 chrono::fsi::make_uint4 (uint3 a, uint w)

__host__ __device__ uint4 chrono::fsi::make_uint4 (int4 a)

__host__ __device__ float2 chrono::fsi::operator- (float2 &a)

__host__ __device__ int2 chrono::fsi::operator- (int2 &a)

__host__ __device__ float3 chrono::fsi::operator- (float3 &a)

__host__ __device__ int3 chrono::fsi::operator- (int3 &a)

__host__ __device__ float4 chrono::fsi::operator- (float4 &a)

__host__ __device__ int4 chrono::fsi::operator- (int4 &a)

__host__ __device__ float2 chrono::fsi::operator+ (float2 a, float2 b)

__host__ __device__ void chrono::fsi::operator+= (float2 &a, float2 b)

__host__ __device__ float2 chrono::fsi::operator+ (float2 a, float b)

__host__ __device__ float2 chrono::fsi::operator+ (float b, float2 a)

__host__ __device__ void chrono::fsi::operator+= (float2 &a, float b)

__host__ __device__ int2 chrono::fsi::operator+ (int2 a, int2 b)

__host__ __device__ void chrono::fsi::operator+= (int2 &a, int2 b)

__host__ __device__ int2 chrono::fsi::operator+ (int2 a, int b)

__host__ __device__ int2 chrono::fsi::operator+ (int b, int2 a)

__host__ __device__ void chrono::fsi::operator+= (int2 &a, int b)

__host__ __device__ uint2 chrono::fsi::operator+ (uint2 a, uint2 b)

__host__ __device__ void chrono::fsi::operator+= (uint2 &a, uint2 b)

__host__ __device__ uint2 chrono::fsi::operator+ (uint2 a, uint b)

__host__ __device__ uint2 chrono::fsi::operator+ (uint b, uint2 a)

__host__ __device__ void chrono::fsi::operator+= (uint2 &a, uint b)

__host__ __device__ float3 chrono::fsi::operator+ (float3 a, float3 b)

__host__ __device__ void chrono::fsi::operator+= (float3 &a, float3 b)

__host__ __device__ float3 chrono::fsi::operator+ (float3 a, float b)

__host__ __device__ void chrono::fsi::operator+= (float3 &a, float b)

__host__ __device__ int3 chrono::fsi::operator+ (int3 a, int3 b)

__host__ __device__ void chrono::fsi::operator+= (int3 &a, int3 b)

__host__ __device__ int3 chrono::fsi::operator+ (int3 a, int b)

__host__ __device__ void chrono::fsi::operator+= (int3 &a, int b)

__host__ __device__ uint3 chrono::fsi::operator+ (uint3 a, uint3 b)

__host__ __device__ void chrono::fsi::operator+= (uint3 &a, uint3 b)

__host__ __device__ uint3 chrono::fsi::operator+ (uint3 a, uint b)

__host__ __device__ void chrono::fsi::operator+= (uint3 &a, uint b)

__host__ __device__ int3 chrono::fsi::operator+ (int b, int3 a)

__host__ __device__ uint3 chrono::fsi::operator+ (uint b, uint3 a)

__host__ __device__ float3 chrono::fsi::operator+ (float b, float3 a)

__host__ __device__ float4 chrono::fsi::operator+ (float4 a, float4 b)

__host__ __device__ void chrono::fsi::operator+= (float4 &a, float4 b)

__host__ __device__ float4 chrono::fsi::operator+ (float4 a, float b)

__host__ __device__ float4 chrono::fsi::operator+ (float b, float4 a)

__host__ __device__ void chrono::fsi::operator+= (float4 &a, float b)

__host__ __device__ int4 chrono::fsi::operator+ (int4 a, int4 b)

__host__ __device__ void chrono::fsi::operator+= (int4 &a, int4 b)

__host__ __device__ int4 chrono::fsi::operator+ (int4 a, int b)

__host__ __device__ int4 chrono::fsi::operator+ (int b, int4 a)

__host__ __device__ void chrono::fsi::operator+= (int4 &a, int b)

__host__ __device__ uint4 chrono::fsi::operator+ (uint4 a, uint4 b)

__host__ __device__ void chrono::fsi::operator+= (uint4 &a, uint4 b)

__host__ __device__ uint4 chrono::fsi::operator+ (uint4 a, uint b)

__host__ __device__ uint4 chrono::fsi::operator+ (uint b, uint4 a)

__host__ __device__ void chrono::fsi::operator+= (uint4 &a, uint b)

__host__ __device__ float2 chrono::fsi::operator- (float2 a, float2 b)

__host__ __device__ void chrono::fsi::operator-= (float2 &a, float2 b)

__host__ __device__ float2 chrono::fsi::operator- (float2 a, float b)

__host__ __device__ float2 chrono::fsi::operator- (float b, float2 a)

__host__ __device__ void chrono::fsi::operator-= (float2 &a, float b)

__host__ __device__ int2 chrono::fsi::operator- (int2 a, int2 b)

__host__ __device__ void chrono::fsi::operator-= (int2 &a, int2 b)

__host__ __device__ int2 chrono::fsi::operator- (int2 a, int b)

__host__ __device__ int2 chrono::fsi::operator- (int b, int2 a)

__host__ __device__ void chrono::fsi::operator-= (int2 &a, int b)

__host__ __device__ uint2 chrono::fsi::operator- (uint2 a, uint2 b)

__host__ __device__ void chrono::fsi::operator-= (uint2 &a, uint2 b)

__host__ __device__ uint2 chrono::fsi::operator- (uint2 a, uint b)

__host__ __device__ uint2 chrono::fsi::operator- (uint b, uint2 a)

__host__ __device__ void chrono::fsi::operator-= (uint2 &a, uint b)

__host__ __device__ float3 chrono::fsi::operator- (float3 a, float3 b)

__host__ __device__ void chrono::fsi::operator-= (float3 &a, float3 b)

__host__ __device__ float3 chrono::fsi::operator- (float3 a, float b)

__host__ __device__ float3 chrono::fsi::operator- (float b, float3 a)

__host__ __device__ void chrono::fsi::operator-= (float3 &a, float b)

__host__ __device__ int3 chrono::fsi::operator- (int3 a, int3 b)

__host__ __device__ void chrono::fsi::operator-= (int3 &a, int3 b)

__host__ __device__ int3 chrono::fsi::operator- (int3 a, int b)

__host__ __device__ int3 chrono::fsi::operator- (int b, int3 a)

__host__ __device__ void chrono::fsi::operator-= (int3 &a, int b)

__host__ __device__ uint3 chrono::fsi::operator- (uint3 a, uint3 b)

__host__ __device__ void chrono::fsi::operator-= (uint3 &a, uint3 b)

__host__ __device__ uint3 chrono::fsi::operator- (uint3 a, uint b)

__host__ __device__ uint3 chrono::fsi::operator- (uint b, uint3 a)

__host__ __device__ void chrono::fsi::operator-= (uint3 &a, uint b)

__host__ __device__ float4 chrono::fsi::operator- (float4 a, float4 b)

__host__ __device__ void chrono::fsi::operator-= (float4 &a, float4 b)

__host__ __device__ float4 chrono::fsi::operator- (float4 a, float b)

__host__ __device__ void chrono::fsi::operator-= (float4 &a, float b)

__host__ __device__ int4 chrono::fsi::operator- (int4 a, int4 b)

__host__ __device__ void chrono::fsi::operator-= (int4 &a, int4 b)

__host__ __device__ int4 chrono::fsi::operator- (int4 a, int b)

__host__ __device__ int4 chrono::fsi::operator- (int b, int4 a)

__host__ __device__ void chrono::fsi::operator-= (int4 &a, int b)

__host__ __device__ uint4 chrono::fsi::operator- (uint4 a, uint4 b)

__host__ __device__ void chrono::fsi::operator-= (uint4 &a, uint4 b)

__host__ __device__ uint4 chrono::fsi::operator- (uint4 a, uint b)

__host__ __device__ uint4 chrono::fsi::operator- (uint b, uint4 a)

__host__ __device__ void chrono::fsi::operator-= (uint4 &a, uint b)

__host__ __device__ float2 chrono::fsi::operator* (float2 a, float2 b)

__host__ __device__ void chrono::fsi::operator*= (float2 &a, float2 b)

__host__ __device__ float2 chrono::fsi::operator* (float2 a, float b)

__host__ __device__ float2 chrono::fsi::operator* (float b, float2 a)

__host__ __device__ void chrono::fsi::operator*= (float2 &a, float b)

__host__ __device__ int2 chrono::fsi::operator* (int2 a, int2 b)

__host__ __device__ void chrono::fsi::operator*= (int2 &a, int2 b)

__host__ __device__ int2 chrono::fsi::operator* (int2 a, int b)

__host__ __device__ int2 chrono::fsi::operator* (int b, int2 a)

__host__ __device__ void chrono::fsi::operator*= (int2 &a, int b)

__host__ __device__ uint2 chrono::fsi::operator* (uint2 a, uint2 b)

__host__ __device__ void chrono::fsi::operator*= (uint2 &a, uint2 b)

__host__ __device__ uint2 chrono::fsi::operator* (uint2 a, uint b)

__host__ __device__ uint2 chrono::fsi::operator* (uint b, uint2 a)

__host__ __device__ void chrono::fsi::operator*= (uint2 &a, uint b)

__host__ __device__ float3 chrono::fsi::operator* (float3 a, float3 b)

__host__ __device__ void chrono::fsi::operator*= (float3 &a, float3 b)

__host__ __device__ float3 chrono::fsi::operator* (float3 a, float b)

__host__ __device__ float3 chrono::fsi::operator* (float b, float3 a)

__host__ __device__ void chrono::fsi::operator*= (float3 &a, float b)

__host__ __device__ int3 chrono::fsi::operator* (int3 a, int3 b)

__host__ __device__ void chrono::fsi::operator*= (int3 &a, int3 b)

__host__ __device__ int3 chrono::fsi::operator* (int3 a, int b)

__host__ __device__ int3 chrono::fsi::operator* (int b, int3 a)

__host__ __device__ void chrono::fsi::operator*= (int3 &a, int b)

__host__ __device__ uint3 chrono::fsi::operator* (uint3 a, uint3 b)

__host__ __device__ void chrono::fsi::operator*= (uint3 &a, uint3 b)

__host__ __device__ uint3 chrono::fsi::operator* (uint3 a, uint b)

__host__ __device__ uint3 chrono::fsi::operator* (uint b, uint3 a)

__host__ __device__ void chrono::fsi::operator*= (uint3 &a, uint b)

__host__ __device__ float4 chrono::fsi::operator* (float4 a, float4 b)

__host__ __device__ void chrono::fsi::operator*= (float4 &a, float4 b)

__host__ __device__ float4 chrono::fsi::operator* (float4 a, float b)

__host__ __device__ float4 chrono::fsi::operator* (float b, float4 a)

__host__ __device__ void chrono::fsi::operator*= (float4 &a, float b)

__host__ __device__ int4 chrono::fsi::operator* (int4 a, int4 b)

__host__ __device__ void chrono::fsi::operator*= (int4 &a, int4 b)

__host__ __device__ int4 chrono::fsi::operator* (int4 a, int b)

__host__ __device__ int4 chrono::fsi::operator* (int b, int4 a)

__host__ __device__ void chrono::fsi::operator*= (int4 &a, int b)

__host__ __device__ uint4 chrono::fsi::operator* (uint4 a, uint4 b)

__host__ __device__ void chrono::fsi::operator*= (uint4 &a, uint4 b)

__host__ __device__ uint4 chrono::fsi::operator* (uint4 a, uint b)

__host__ __device__ uint4 chrono::fsi::operator* (uint b, uint4 a)

__host__ __device__ void chrono::fsi::operator*= (uint4 &a, uint b)

__host__ __device__ float2 chrono::fsi::operator/ (float2 a, float2 b)

__host__ __device__ void chrono::fsi::operator/= (float2 &a, float2 b)

__host__ __device__ float2 chrono::fsi::operator/ (float2 a, float b)

__host__ __device__ void chrono::fsi::operator/= (float2 &a, float b)

__host__ __device__ float2 chrono::fsi::operator/ (float b, float2 a)

__host__ __device__ float3 chrono::fsi::operator/ (float3 a, float3 b)

__host__ __device__ void chrono::fsi::operator/= (float3 &a, float3 b)

__host__ __device__ float3 chrono::fsi::operator/ (float3 a, float b)

__host__ __device__ void chrono::fsi::operator/= (float3 &a, float b)

__host__ __device__ float3 chrono::fsi::operator/ (float b, float3 a)

__host__ __device__ float4 chrono::fsi::operator/ (float4 a, float4 b)

__host__ __device__ void chrono::fsi::operator/= (float4 &a, float4 b)

__host__ __device__ float4 chrono::fsi::operator/ (float4 a, float b)

__host__ __device__ void chrono::fsi::operator/= (float4 &a, float b)

__host__ __device__ float4 chrono::fsi::operator/ (float b, float4 a)

__host__ __device__ float2 chrono::fsi::fminf (float2 a, float2 b)

__host__ __device__ float3 chrono::fsi::fminf (float3 a, float3 b)

__host__ __device__ float4 chrono::fsi::fminf (float4 a, float4 b)

__host__ __device__ int2 chrono::fsi::min (int2 a, int2 b)

__host__ __device__ int3 chrono::fsi::min (int3 a, int3 b)

__host__ __device__ int4 chrono::fsi::min (int4 a, int4 b)

__host__ __device__ uint2 chrono::fsi::min (uint2 a, uint2 b)

__host__ __device__ uint3 chrono::fsi::min (uint3 a, uint3 b)

__host__ __device__ uint4 chrono::fsi::min (uint4 a, uint4 b)

__host__ __device__ float2 chrono::fsi::fmaxf (float2 a, float2 b)

__host__ __device__ float3 chrono::fsi::fmaxf (float3 a, float3 b)

__host__ __device__ float4 chrono::fsi::fmaxf (float4 a, float4 b)

__host__ __device__ int2 chrono::fsi::max (int2 a, int2 b)

__host__ __device__ int3 chrono::fsi::max (int3 a, int3 b)

__host__ __device__ int4 chrono::fsi::max (int4 a, int4 b)

__host__ __device__ uint2 chrono::fsi::max (uint2 a, uint2 b)

__host__ __device__ uint3 chrono::fsi::max (uint3 a, uint3 b)

__host__ __device__ uint4 chrono::fsi::max (uint4 a, uint4 b)

__device__ __host__ float chrono::fsi::lerp (float a, float b, float t)

__device__ __host__ float2 chrono::fsi::lerp (float2 a, float2 b, float t)

__device__ __host__ float3 chrono::fsi::lerp (float3 a, float3 b, float t)

__device__ __host__ float4 chrono::fsi::lerp (float4 a, float4 b, float t)

__host__ __device__ float chrono::fsi::dot (float2 a, float2 b)

__host__ __device__ float chrono::fsi::dot (float3 a, float3 b)

__host__ __device__ float chrono::fsi::dot (float4 a, float4 b)

__host__ __device__ int chrono::fsi::dot (int2 a, int2 b)

__host__ __device__ int chrono::fsi::dot (int3 a, int3 b)

__host__ __device__ int chrono::fsi::dot (int4 a, int4 b)

__host__ __device__ uint chrono::fsi::dot (uint2 a, uint2 b)

__host__ __device__ uint chrono::fsi::dot (uint3 a, uint3 b)

__host__ __device__ uint chrono::fsi::dot (uint4 a, uint4 b)

__host__ __device__ float chrono::fsi::length (float2 v)

__host__ __device__ float chrono::fsi::length (float3 v)

__host__ __device__ float chrono::fsi::length (float4 v)

__host__ __device__ float2 chrono::fsi::normalize (float2 v)

__host__ __device__ float3 chrono::fsi::normalize (float3 v)

__host__ __device__ float4 chrono::fsi::normalize (float4 v)

__host__ __device__ float3 chrono::fsi::cross (float3 a, float3 b)

__host__ __device__ Real chrono::fsi::rminr (Real a, Real b)

__host__ __device__ Real chrono::fsi::rmaxr (Real a, Real b)

__host__ __device__ Real chrono::fsi::rsqrtr (Real x)

__host__ __device__ Real2 chrono::fsi::make_Real2 (Real b, Real c)

__host__ __device__ Real2 chrono::fsi::make_Real2 (Real s)

__host__ __device__ Real2 chrono::fsi::make_Real2 (Real3 a)

__host__ __device__ Real2 chrono::fsi::make_Real2 (int2 a)

__host__ __device__ Real2 chrono::fsi::make_Real2 (uint2 a)

__host__ __device__ int2 chrono::fsi::make_int2 (Real2 a)

__host__ __device__ Real3 chrono::fsi::make_Real3 (Real a, Real b, Real c)

__host__ __device__ Real3 chrono::fsi::make_Real3 (Real s)

__host__ __device__ Real3 chrono::fsi::make_Real3 (Real2 a)

__host__ __device__ Real3 chrono::fsi::make_Real3 (Real2 a, Real s)

__host__ __device__ Real3 chrono::fsi::make_Real3 (Real4 a)

__host__ __device__ Real3 chrono::fsi::make_Real3 (int3 a)

__host__ __device__ Real3 chrono::fsi::make_Real3 (uint3 a)

__host__ __device__ int3 chrono::fsi::make_int3 (Real3 a)

__host__ __device__ Real3 chrono::fsi::make_Real3 (Real3 a)

__host__ __device__ Real4 chrono::fsi::make_Real4 (Real a, Real b, Real c, Real d)

__host__ __device__ Real4 chrono::fsi::make_Real4 (Real s)

__host__ __device__ Real4 chrono::fsi::make_Real4 (Real3 a)

__host__ __device__ Real4 chrono::fsi::make_Real4 (Real3 a, Real w)

__host__ __device__ Real4 chrono::fsi::make_Real4 (Real4 a)

__host__ __device__ Real4 chrono::fsi::make_Real4 (int4 a)

__host__ __device__ Real4 chrono::fsi::make_Real4 (uint4 a)

__host__ __device__ int4 chrono::fsi::make_int4 (Real4 a)

__host__ __device__ Real2 chrono::fsi::operator- (Real2 &a)

__host__ __device__ Real3 chrono::fsi::operator- (Real3 &a)

__host__ __device__ Real4 chrono::fsi::operator- (Real4 &a)

__host__ __device__ Real2 chrono::fsi::operator+ (Real2 a, Real2 b)

__host__ __device__ void chrono::fsi::operator+= (Real2 &a, Real2 b)

__host__ __device__ Real2 chrono::fsi::operator+ (Real2 a, Real b)

__host__ __device__ Real2 chrono::fsi::operator+ (Real b, Real2 a)

__host__ __device__ void chrono::fsi::operator+= (Real2 &a, Real b)

__host__ __device__ Real3 chrono::fsi::operator+ (Real3 a, Real3 b)

__host__ __device__ void chrono::fsi::operator+= (Real3 &a, Real3 b)

__host__ __device__ Real3 chrono::fsi::operator+ (Real3 a, Real b)

__host__ __device__ void chrono::fsi::operator+= (Real3 &a, Real b)

__host__ __device__ Real3 chrono::fsi::operator+ (Real b, Real3 a)

__host__ __device__ Real4 chrono::fsi::operator+ (Real4 a, Real4 b)

__host__ __device__ void chrono::fsi::operator+= (Real4 &a, Real4 b)

__host__ __device__ Real4 chrono::fsi::operator+ (Real4 a, Real b)

__host__ __device__ Real4 chrono::fsi::operator+ (Real b, Real4 a)

__host__ __device__ void chrono::fsi::operator+= (Real4 &a, Real b)

__host__ __device__ Real2 chrono::fsi::operator- (Real2 a, Real2 b)

__host__ __device__ void chrono::fsi::operator-= (Real2 &a, Real2 b)

__host__ __device__ Real2 chrono::fsi::operator- (Real2 a, Real b)

__host__ __device__ Real2 chrono::fsi::operator- (Real b, Real2 a)

__host__ __device__ void chrono::fsi::operator-= (Real2 &a, Real b)

__host__ __device__ Real3 chrono::fsi::operator- (Real3 a, Real3 b)

__host__ __device__ void chrono::fsi::operator-= (Real3 &a, Real3 b)

__host__ __device__ Real3 chrono::fsi::operator- (Real3 a, Real b)

__host__ __device__ Real3 chrono::fsi::operator- (Real b, Real3 a)

__host__ __device__ void chrono::fsi::operator-= (Real3 &a, Real b)

__host__ __device__ Real4 chrono::fsi::operator- (Real4 a, Real4 b)

__host__ __device__ void chrono::fsi::operator-= (Real4 &a, Real4 b)

__host__ __device__ Real4 chrono::fsi::operator- (Real4 a, Real b)

__host__ __device__ void chrono::fsi::operator-= (Real4 &a, Real b)

__host__ __device__ Real2 chrono::fsi::operator* (Real2 a, Real2 b)

__host__ __device__ void chrono::fsi::operator*= (Real2 &a, Real2 b)

__host__ __device__ Real2 chrono::fsi::operator* (Real2 a, Real b)

__host__ __device__ Real2 chrono::fsi::operator* (Real b, Real2 a)

__host__ __device__ void chrono::fsi::operator*= (Real2 &a, Real b)

__host__ __device__ Real3 chrono::fsi::operator* (Real3 a, Real3 b)

__host__ __device__ void chrono::fsi::operator*= (Real3 &a, Real3 b)

__host__ __device__ Real3 chrono::fsi::operator* (Real3 a, Real b)

__host__ __device__ Real3 chrono::fsi::operator* (Real b, Real3 a)

__host__ __device__ void chrono::fsi::operator*= (Real3 &a, Real b)

__host__ __device__ Real4 chrono::fsi::operator* (Real4 a, Real4 b)

__host__ __device__ void chrono::fsi::operator*= (Real4 &a, Real4 b)

__host__ __device__ Real4 chrono::fsi::operator* (Real4 a, Real b)

__host__ __device__ Real4 chrono::fsi::operator* (Real b, Real4 a)

__host__ __device__ void chrono::fsi::operator*= (Real4 &a, Real b)

__host__ __device__ Real2 chrono::fsi::operator/ (Real2 a, Real2 b)

__host__ __device__ void chrono::fsi::operator/= (Real2 &a, Real2 b)

__host__ __device__ Real2 chrono::fsi::operator/ (Real2 a, Real b)

__host__ __device__ void chrono::fsi::operator/= (Real2 &a, Real b)

__host__ __device__ Real2 chrono::fsi::operator/ (Real b, Real2 a)

__host__ __device__ Real3 chrono::fsi::operator/ (Real3 a, Real3 b)

__host__ __device__ void chrono::fsi::operator/= (Real3 &a, Real3 b)

__host__ __device__ Real3 chrono::fsi::operator/ (Real3 a, Real b)

__host__ __device__ void chrono::fsi::operator/= (Real3 &a, Real b)

__host__ __device__ Real3 chrono::fsi::operator/ (Real b, Real3 a)

__host__ __device__ Real4 chrono::fsi::operator/ (Real4 a, Real4 b)

__host__ __device__ void chrono::fsi::operator/= (Real4 &a, Real4 b)

__host__ __device__ Real4 chrono::fsi::operator/ (Real4 a, Real b)

__host__ __device__ void chrono::fsi::operator/= (Real4 &a, Real b)

__host__ __device__ Real4 chrono::fsi::operator/ (Real b, Real4 a)

__host__ __device__ Real2 chrono::fsi::rminr (Real2 a, Real2 b)

__host__ __device__ Real3 chrono::fsi::rminr (Real3 a, Real3 b)

__host__ __device__ Real4 chrono::fsi::rminr (Real4 a, Real4 b)

__host__ __device__ Real2 chrono::fsi::rmaxr (Real2 a, Real2 b)

__host__ __device__ Real3 chrono::fsi::rmaxr (Real3 a, Real3 b)

__host__ __device__ Real4 chrono::fsi::rmaxr (Real4 a, Real4 b)

__host__ __device__ Real2 chrono::fsi::lerp (Real2 a, Real2 b, Real t)

__host__ __device__ Real3 chrono::fsi::lerp (Real3 a, Real3 b, Real t)

__host__ __device__ Real4 chrono::fsi::lerp (Real4 a, Real4 b, Real t)

__host__ __device__ Real chrono::fsi::dot (Real2 a, Real2 b)

__host__ __device__ Real chrono::fsi::dot (Real3 a, Real3 b)

__host__ __device__ Real chrono::fsi::dot (Real4 a, Real4 b)

__host__ __device__ Real chrono::fsi::length (Real v)

__host__ __device__ Real chrono::fsi::length (Real2 v)

__host__ __device__ Real chrono::fsi::length (Real3 v)

__host__ __device__ Real chrono::fsi::length (Real4 v)

__host__ __device__ Real2 chrono::fsi::normalize (Real2 v)

__host__ __device__ Real3 chrono::fsi::normalize (Real3 v)

__host__ __device__ Real4 chrono::fsi::normalize (Real4 v)

__host__ __device__ Real3 chrono::fsi::cross (Real3 a, Real3 b)

__host__ __device__ Real chrono::fsi::sgn (Real a)

__host__ __device__ Real3 chrono::fsi::sgn (Real3 a)

__host__ __device__ Real2 chrono::fsi::Cables_ShapeFunctions (Real xi)

__host__ __device__ Real4 chrono::fsi::Shells_ShapeFunctions (Real x, Real y)

__host__ __device__ Real3 chrono::fsi::user_BC_U (Real3 Pos)