tRaytracer included as cuh header file, compiles without warnings - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 513ff2b8bafb8119bce86cf56b4d80d6b1e0519b
(DIR) parent 6c15212f6bc2ff22a3331b26bc6c1ab842132944
(HTM) Author: Anders Damsgaard <adc@geo.au.dk>
Date: Sun, 4 Nov 2012 16:52:30 +0100
Raytracer included as cuh header file, compiles without warnings
Diffstat:
M src/Makefile | 5 +----
M src/device.cu | 5 ++++-
M src/sphere.cpp | 11 ++++++++++-
M src/sphere.h | 16 ++++++++--------
M src/vector_arithmetic.h | 580 -------------------------------
5 files changed, 23 insertions(+), 594 deletions(-)
---
(DIR) diff --git a/src/Makefile b/src/Makefile
t@@ -34,7 +34,7 @@ DATE=`date +'%Y.%m.%d-%H:%M:%S'`
BACKUPNAME=sphere.$(DATE).tar.gz
CCFILES=main.cpp file_io.cpp sphere.cpp
-CUFILES=device.cu utility.cu raytracer.cu
+CUFILES=device.cu utility.cu
CCOBJECTS=$(CCFILES:.cpp=.o)
CUOBJECTS=$(CUFILES:.cu=.o)
OBJECTS=$(CCOBJECTS) $(CUOBJECTS)
t@@ -91,9 +91,6 @@ main.o: main.cpp $(DEPS)
sphere.o: sphere.cpp $(DEPS)
$(CC) $(CCFLAGS) $(INCLUDES) -c $< -o $@
-raytracer.o: raytracer.cu $(DEPS)
- $(NVCC) $(NVCCFLAGS) $(INCLUDES) -c $< -o $@
-
../sphere_status: sphere_status.cpp
$(CC) $(CCFLAGS) sphere_status.cpp -o ../sphere_status
(DIR) diff --git a/src/device.cu b/src/device.cu
t@@ -3,8 +3,10 @@
#include <string>
#include <cstdio>
#include <cuda.h>
+#include <cutil_math.h>
-#include "vector_arithmetic.h"
+#include "vector_arithmetic.h" // for arbitrary prec. vectors
+//#include <vector_functions.h> // for single prec. vectors
#include "thrust/device_ptr.h"
#include "thrust/sort.h"
t@@ -19,6 +21,7 @@
#include "cohesion.cuh"
#include "contactsearch.cuh"
#include "integration.cuh"
+#include "raytracer.cuh"
//#include "cuPrintf.cu"
(DIR) diff --git a/src/sphere.cpp b/src/sphere.cpp
t@@ -13,7 +13,7 @@
DEM::DEM(const std::string inputbin,
const int verbosity,
const int checkVals,
- const int render)
+ const int render_img)
: verbose(verbosity)
{
using std::cout;
t@@ -45,6 +45,15 @@ DEM::DEM(const std::string inputbin,
// Initialize CUDA
initializeGPU();
+ // Render image using raytracer if requested
+ if (render_img == 1) {
+ float3 eye = make_float3(0.6f * grid.L[0],
+ -2.5f * grid.L[1],
+ 0.52f * grid.L[2]);
+ //float focalLength = 0.8f*grid.L[0];
+ render(eye);
+ }
+
}
// Destructor: Liberates dynamically allocated host memory
(DIR) diff --git a/src/sphere.h b/src/sphere.h
t@@ -96,9 +96,10 @@ class DEM {
void checkConstantMemory(void);
// Initialize camera values and transfer to constant device memory
- void cameraInit(float3 eye, float3 lookat,
- float imgw, float hw_ratio,
- float focalLength);
+ void cameraInit(const float3 eye,
+ const float3 lookat,
+ const float imgw,
+ const float focalLength);
// Allocate global device memory to hold data
void allocateGlobalDeviceMemory(void);
t@@ -146,12 +147,11 @@ class DEM {
void startTime(void);
// Render particles using raytracing
- void render(const char *target,
- const Float3 lookat,
- const Float3 eye,
- const Float focalLength = 1.0,
+ void render(//const char *target,
+ const float3 eye,
+ const float focalLength = 1.0,
const int method = 1,
- const Float maxval = 1.0e3,
+ const float maxval = 1.0e3,
const unsigned int img_width = 800,
const unsigned int img_height = 800);
(DIR) diff --git a/src/vector_arithmetic.h b/src/vector_arithmetic.h
t@@ -24,16 +24,6 @@ inline Float fmaxf(Float a, Float b)
return a > b ? a : b;
}
-inline int max(int a, int b)
-{
- return a > b ? a : b;
-}
-
-inline int min(int a, int b)
-{
- return a < b ? a : b;
-}
-
inline Float rsqrtf(Float x)
{
return 1.0f / sqrtf(x);
t@@ -41,48 +31,6 @@ inline Float rsqrtf(Float x)
#endif
////////////////////////////////////////////////////////////////////////////////
-// constructors
-////////////////////////////////////////////////////////////////////////////////
-/*inline __host__ __device__ Float3 MAKE_FLOAT3(Float s)
-{
- return MAKE_FLOAT3(s, s, s);
-}
-inline __host__ __device__ Float3 MAKE_FLOAT3(Float4 a)
-{
- return MAKE_FLOAT3(a.x, a.y, a.z);
-}
-inline __host__ __device__ Float3 MAKE_FLOAT3(int3 a)
-{
- return MAKE_FLOAT3(Float(a.x), Float(a.y), Float(a.z));
-}
-inline __host__ __device__ Float3 MAKE_FLOAT3(uint3 a)
-{
- return MAKE_FLOAT3(Float(a.x), Float(a.y), Float(a.z));
-}
-
-inline __host__ __device__ Float4 MAKE_FLOAT4(Float s)
-{
- return MAKE_FLOAT4(s, s, s, s);
-}
-inline __host__ __device__ Float4 MAKE_FLOAT4(Float3 a)
-{
- return MAKE_FLOAT4(a.x, a.y, a.z, 0.0f);
-}
-inline __host__ __device__ Float4 MAKE_FLOAT4(Float3 a, Float w)
-{
- return MAKE_FLOAT4(a.x, a.y, a.z, w);
-}
-inline __host__ __device__ Float4 MAKE_FLOAT4(int4 a)
-{
- return MAKE_FLOAT4(Float(a.x), Float(a.y), Float(a.z), Float(a.w));
-}
-inline __host__ __device__ Float4 MAKE_FLOAT4(uint4 a)
-{
- return MAKE_FLOAT4(Float(a.x), Float(a.y), Float(a.z), Float(a.w));
-}
-*/
-
-////////////////////////////////////////////////////////////////////////////////
// negate
////////////////////////////////////////////////////////////////////////////////
inline __host__ __device__ Float3 operator-(Float3 &a)
t@@ -98,48 +46,6 @@ inline __host__ __device__ Float4 operator-(Float4 &a)
// addition
////////////////////////////////////////////////////////////////////////////////
-inline __host__ __device__ int2 operator+(int2 a, int2 b)
-{
- return make_int2(a.x + b.x, a.y + b.y);
-}
-inline __host__ __device__ void operator+=(int2 &a, int2 b)
-{
- a.x += b.x; a.y += b.y;
-}
-inline __host__ __device__ int2 operator+(int2 a, int b)
-{
- return make_int2(a.x + b, a.y + b);
-}
-inline __host__ __device__ int2 operator+(int b, int2 a)
-{
- return make_int2(a.x + b, a.y + b);
-}
-inline __host__ __device__ void operator+=(int2 &a, int b)
-{
- a.x += b; a.y += b;
-}
-
-inline __host__ __device__ uint2 operator+(uint2 a, uint2 b)
-{
- return make_uint2(a.x + b.x, a.y + b.y);
-}
-inline __host__ __device__ void operator+=(uint2 &a, uint2 b)
-{
- a.x += b.x; a.y += b.y;
-}
-inline __host__ __device__ uint2 operator+(uint2 a, uint b)
-{
- return make_uint2(a.x + b, a.y + b);
-}
-inline __host__ __device__ uint2 operator+(uint b, uint2 a)
-{
- return make_uint2(a.x + b, a.y + b);
-}
-inline __host__ __device__ void operator+=(uint2 &a, uint b)
-{
- a.x += b; a.y += b;
-}
-
inline __host__ __device__ void operator+=(Float2 &a, Float2 b)
{
a.x += b.x; a.y += b.y;
t@@ -161,48 +67,6 @@ inline __host__ __device__ void operator+=(Float3 &a, Float b)
a.x += b; a.y += b; a.z += b;
}
-inline __host__ __device__ int3 operator+(int3 a, int3 b)
-{
- return make_int3(a.x + b.x, a.y + b.y, a.z + b.z);
-}
-inline __host__ __device__ void operator+=(int3 &a, int3 b)
-{
- a.x += b.x; a.y += b.y; a.z += b.z;
-}
-inline __host__ __device__ int3 operator+(int3 a, int b)
-{
- return make_int3(a.x + b, a.y + b, a.z + b);
-}
-inline __host__ __device__ void operator+=(int3 &a, int b)
-{
- a.x += b; a.y += b; a.z += b;
-}
-
-inline __host__ __device__ uint3 operator+(uint3 a, uint3 b)
-{
- return make_uint3(a.x + b.x, a.y + b.y, a.z + b.z);
-}
-inline __host__ __device__ void operator+=(uint3 &a, uint3 b)
-{
- a.x += b.x; a.y += b.y; a.z += b.z;
-}
-inline __host__ __device__ uint3 operator+(uint3 a, uint b)
-{
- return make_uint3(a.x + b, a.y + b, a.z + b);
-}
-inline __host__ __device__ void operator+=(uint3 &a, uint b)
-{
- a.x += b; a.y += b; a.z += b;
-}
-
-inline __host__ __device__ int3 operator+(int b, int3 a)
-{
- return make_int3(a.x + b, a.y + b, a.z + b);
-}
-inline __host__ __device__ uint3 operator+(uint b, uint3 a)
-{
- return make_uint3(a.x + b, a.y + b, a.z + b);
-}
inline __host__ __device__ Float3 operator+(Float b, Float3 a)
{
return MAKE_FLOAT3(a.x + b, a.y + b, a.z + b);
t@@ -229,95 +93,10 @@ inline __host__ __device__ void operator+=(Float4 &a, Float b)
a.x += b; a.y += b; a.z += b; a.w += b;
}
-inline __host__ __device__ int4 operator+(int4 a, int4 b)
-{
- return make_int4(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
-}
-inline __host__ __device__ void operator+=(int4 &a, int4 b)
-{
- a.x += b.x; a.y += b.y; a.z += b.z; a.w += b.w;
-}
-inline __host__ __device__ int4 operator+(int4 a, int b)
-{
- return make_int4(a.x + b, a.y + b, a.z + b, a.w + b);
-}
-inline __host__ __device__ int4 operator+(int b, int4 a)
-{
- return make_int4(a.x + b, a.y + b, a.z + b, a.w + b);
-}
-inline __host__ __device__ void operator+=(int4 &a, int b)
-{
- a.x += b; a.y += b; a.z += b; a.w += b;
-}
-
-inline __host__ __device__ uint4 operator+(uint4 a, uint4 b)
-{
- return make_uint4(a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w);
-}
-inline __host__ __device__ void operator+=(uint4 &a, uint4 b)
-{
- a.x += b.x; a.y += b.y; a.z += b.z; a.w += b.w;
-}
-inline __host__ __device__ uint4 operator+(uint4 a, uint b)
-{
- return make_uint4(a.x + b, a.y + b, a.z + b, a.w + b);
-}
-inline __host__ __device__ uint4 operator+(uint b, uint4 a)
-{
- return make_uint4(a.x + b, a.y + b, a.z + b, a.w + b);
-}
-inline __host__ __device__ void operator+=(uint4 &a, uint b)
-{
- a.x += b; a.y += b; a.z += b; a.w += b;
-}
-
////////////////////////////////////////////////////////////////////////////////
// subtract
////////////////////////////////////////////////////////////////////////////////
-
-inline __host__ __device__ int2 operator-(int2 a, int2 b)
-{
- return make_int2(a.x - b.x, a.y - b.y);
-}
-inline __host__ __device__ void operator-=(int2 &a, int2 b)
-{
- a.x -= b.x; a.y -= b.y;
-}
-inline __host__ __device__ int2 operator-(int2 a, int b)
-{
- return make_int2(a.x - b, a.y - b);
-}
-inline __host__ __device__ int2 operator-(int b, int2 a)
-{
- return make_int2(b - a.x, b - a.y);
-}
-inline __host__ __device__ void operator-=(int2 &a, int b)
-{
- a.x -= b; a.y -= b;
-}
-
-inline __host__ __device__ uint2 operator-(uint2 a, uint2 b)
-{
- return make_uint2(a.x - b.x, a.y - b.y);
-}
-inline __host__ __device__ void operator-=(uint2 &a, uint2 b)
-{
- a.x -= b.x; a.y -= b.y;
-}
-inline __host__ __device__ uint2 operator-(uint2 a, uint b)
-{
- return make_uint2(a.x - b, a.y - b);
-}
-inline __host__ __device__ uint2 operator-(uint b, uint2 a)
-{
- return make_uint2(b - a.x, b - a.y);
-}
-inline __host__ __device__ void operator-=(uint2 &a, uint b)
-{
- a.x -= b; a.y -= b;
-}
-
inline __host__ __device__ Float3 operator-(Float3 a, Float3 b)
{
return MAKE_FLOAT3(a.x - b.x, a.y - b.y, a.z - b.z);
t@@ -339,48 +118,6 @@ inline __host__ __device__ void operator-=(Float3 &a, Float b)
a.x -= b; a.y -= b; a.z -= b;
}
-inline __host__ __device__ int3 operator-(int3 a, int3 b)
-{
- return make_int3(a.x - b.x, a.y - b.y, a.z - b.z);
-}
-inline __host__ __device__ void operator-=(int3 &a, int3 b)
-{
- a.x -= b.x; a.y -= b.y; a.z -= b.z;
-}
-inline __host__ __device__ int3 operator-(int3 a, int b)
-{
- return make_int3(a.x - b, a.y - b, a.z - b);
-}
-inline __host__ __device__ int3 operator-(int b, int3 a)
-{
- return make_int3(b - a.x, b - a.y, b - a.z);
-}
-inline __host__ __device__ void operator-=(int3 &a, int b)
-{
- a.x -= b; a.y -= b; a.z -= b;
-}
-
-inline __host__ __device__ uint3 operator-(uint3 a, uint3 b)
-{
- return make_uint3(a.x - b.x, a.y - b.y, a.z - b.z);
-}
-inline __host__ __device__ void operator-=(uint3 &a, uint3 b)
-{
- a.x -= b.x; a.y -= b.y; a.z -= b.z;
-}
-inline __host__ __device__ uint3 operator-(uint3 a, uint b)
-{
- return make_uint3(a.x - b, a.y - b, a.z - b);
-}
-inline __host__ __device__ uint3 operator-(uint b, uint3 a)
-{
- return make_uint3(b - a.x, b - a.y, b - a.z);
-}
-inline __host__ __device__ void operator-=(uint3 &a, uint b)
-{
- a.x -= b; a.y -= b; a.z -= b;
-}
-
inline __host__ __device__ Float4 operator-(Float4 a, Float4 b)
{
return MAKE_FLOAT4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
t@@ -398,94 +135,10 @@ inline __host__ __device__ void operator-=(Float4 &a, Float b)
a.x -= b; a.y -= b; a.z -= b; a.w -= b;
}
-inline __host__ __device__ int4 operator-(int4 a, int4 b)
-{
- return make_int4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
-}
-inline __host__ __device__ void operator-=(int4 &a, int4 b)
-{
- a.x -= b.x; a.y -= b.y; a.z -= b.z; a.w -= b.w;
-}
-inline __host__ __device__ int4 operator-(int4 a, int b)
-{
- return make_int4(a.x - b, a.y - b, a.z - b, a.w - b);
-}
-inline __host__ __device__ int4 operator-(int b, int4 a)
-{
- return make_int4(b - a.x, b - a.y, b - a.z, b - a.w);
-}
-inline __host__ __device__ void operator-=(int4 &a, int b)
-{
- a.x -= b; a.y -= b; a.z -= b; a.w -= b;
-}
-
-inline __host__ __device__ uint4 operator-(uint4 a, uint4 b)
-{
- return make_uint4(a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w);
-}
-inline __host__ __device__ void operator-=(uint4 &a, uint4 b)
-{
- a.x -= b.x; a.y -= b.y; a.z -= b.z; a.w -= b.w;
-}
-inline __host__ __device__ uint4 operator-(uint4 a, uint b)
-{
- return make_uint4(a.x - b, a.y - b, a.z - b, a.w - b);
-}
-inline __host__ __device__ uint4 operator-(uint b, uint4 a)
-{
- return make_uint4(b - a.x, b - a.y, b - a.z, b - a.w);
-}
-inline __host__ __device__ void operator-=(uint4 &a, uint b)
-{
- a.x -= b; a.y -= b; a.z -= b; a.w -= b;
-}
-
////////////////////////////////////////////////////////////////////////////////
// multiply
////////////////////////////////////////////////////////////////////////////////
-inline __host__ __device__ int2 operator*(int2 a, int2 b)
-{
- return make_int2(a.x * b.x, a.y * b.y);
-}
-inline __host__ __device__ void operator*=(int2 &a, int2 b)
-{
- a.x *= b.x; a.y *= b.y;
-}
-inline __host__ __device__ int2 operator*(int2 a, int b)
-{
- return make_int2(a.x * b, a.y * b);
-}
-inline __host__ __device__ int2 operator*(int b, int2 a)
-{
- return make_int2(b * a.x, b * a.y);
-}
-inline __host__ __device__ void operator*=(int2 &a, int b)
-{
- a.x *= b; a.y *= b;
-}
-
-inline __host__ __device__ uint2 operator*(uint2 a, uint2 b)
-{
- return make_uint2(a.x * b.x, a.y * b.y);
-}
-inline __host__ __device__ void operator*=(uint2 &a, uint2 b)
-{
- a.x *= b.x; a.y *= b.y;
-}
-inline __host__ __device__ uint2 operator*(uint2 a, uint b)
-{
- return make_uint2(a.x * b, a.y * b);
-}
-inline __host__ __device__ uint2 operator*(uint b, uint2 a)
-{
- return make_uint2(b * a.x, b * a.y);
-}
-inline __host__ __device__ void operator*=(uint2 &a, uint b)
-{
- a.x *= b; a.y *= b;
-}
-
inline __host__ __device__ Float3 operator*(Float3 a, Float3 b)
{
return MAKE_FLOAT3(a.x * b.x, a.y * b.y, a.z * b.z);
t@@ -507,48 +160,6 @@ inline __host__ __device__ void operator*=(Float3 &a, Float b)
a.x *= b; a.y *= b; a.z *= b;
}
-inline __host__ __device__ int3 operator*(int3 a, int3 b)
-{
- return make_int3(a.x * b.x, a.y * b.y, a.z * b.z);
-}
-inline __host__ __device__ void operator*=(int3 &a, int3 b)
-{
- a.x *= b.x; a.y *= b.y; a.z *= b.z;
-}
-inline __host__ __device__ int3 operator*(int3 a, int b)
-{
- return make_int3(a.x * b, a.y * b, a.z * b);
-}
-inline __host__ __device__ int3 operator*(int b, int3 a)
-{
- return make_int3(b * a.x, b * a.y, b * a.z);
-}
-inline __host__ __device__ void operator*=(int3 &a, int b)
-{
- a.x *= b; a.y *= b; a.z *= b;
-}
-
-inline __host__ __device__ uint3 operator*(uint3 a, uint3 b)
-{
- return make_uint3(a.x * b.x, a.y * b.y, a.z * b.z);
-}
-inline __host__ __device__ void operator*=(uint3 &a, uint3 b)
-{
- a.x *= b.x; a.y *= b.y; a.z *= b.z;
-}
-inline __host__ __device__ uint3 operator*(uint3 a, uint b)
-{
- return make_uint3(a.x * b, a.y * b, a.z * b);
-}
-inline __host__ __device__ uint3 operator*(uint b, uint3 a)
-{
- return make_uint3(b * a.x, b * a.y, b * a.z);
-}
-inline __host__ __device__ void operator*=(uint3 &a, uint b)
-{
- a.x *= b; a.y *= b; a.z *= b;
-}
-
inline __host__ __device__ Float4 operator*(Float4 a, Float4 b)
{
return MAKE_FLOAT4(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
t@@ -570,48 +181,6 @@ inline __host__ __device__ void operator*=(Float4 &a, Float b)
a.x *= b; a.y *= b; a.z *= b; a.w *= b;
}
-inline __host__ __device__ int4 operator*(int4 a, int4 b)
-{
- return make_int4(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
-}
-inline __host__ __device__ void operator*=(int4 &a, int4 b)
-{
- a.x *= b.x; a.y *= b.y; a.z *= b.z; a.w *= b.w;
-}
-inline __host__ __device__ int4 operator*(int4 a, int b)
-{
- return make_int4(a.x * b, a.y * b, a.z * b, a.w * b);
-}
-inline __host__ __device__ int4 operator*(int b, int4 a)
-{
- return make_int4(b * a.x, b * a.y, b * a.z, b * a.w);
-}
-inline __host__ __device__ void operator*=(int4 &a, int b)
-{
- a.x *= b; a.y *= b; a.z *= b; a.w *= b;
-}
-
-inline __host__ __device__ uint4 operator*(uint4 a, uint4 b)
-{
- return make_uint4(a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w);
-}
-inline __host__ __device__ void operator*=(uint4 &a, uint4 b)
-{
- a.x *= b.x; a.y *= b.y; a.z *= b.z; a.w *= b.w;
-}
-inline __host__ __device__ uint4 operator*(uint4 a, uint b)
-{
- return make_uint4(a.x * b, a.y * b, a.z * b, a.w * b);
-}
-inline __host__ __device__ uint4 operator*(uint b, uint4 a)
-{
- return make_uint4(b * a.x, b * a.y, b * a.z, b * a.w);
-}
-inline __host__ __device__ void operator*=(uint4 &a, uint b)
-{
- a.x *= b; a.y *= b; a.z *= b; a.w *= b;
-}
-
////////////////////////////////////////////////////////////////////////////////
// divide
////////////////////////////////////////////////////////////////////////////////
t@@ -670,32 +239,6 @@ inline __host__ __device__ Float4 fminf(Float4 a, Float4 b)
return MAKE_FLOAT4(fminf(a.x,b.x), fminf(a.y,b.y), fminf(a.z,b.z), fminf(a.w,b.w));
}
-inline __host__ __device__ int2 min(int2 a, int2 b)
-{
- return make_int2(min(a.x,b.x), min(a.y,b.y));
-}
-inline __host__ __device__ int3 min(int3 a, int3 b)
-{
- return make_int3(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z));
-}
-inline __host__ __device__ int4 min(int4 a, int4 b)
-{
- return make_int4(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z), min(a.w,b.w));
-}
-
-inline __host__ __device__ uint2 min(uint2 a, uint2 b)
-{
- return make_uint2(min(a.x,b.x), min(a.y,b.y));
-}
-inline __host__ __device__ uint3 min(uint3 a, uint3 b)
-{
- return make_uint3(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z));
-}
-inline __host__ __device__ uint4 min(uint4 a, uint4 b)
-{
- return make_uint4(min(a.x,b.x), min(a.y,b.y), min(a.z,b.z), min(a.w,b.w));
-}
-
////////////////////////////////////////////////////////////////////////////////
// max
////////////////////////////////////////////////////////////////////////////////
t@@ -709,32 +252,6 @@ inline __host__ __device__ Float4 fmaxf(Float4 a, Float4 b)
return MAKE_FLOAT4(fmaxf(a.x,b.x), fmaxf(a.y,b.y), fmaxf(a.z,b.z), fmaxf(a.w,b.w));
}
-inline __host__ __device__ int2 max(int2 a, int2 b)
-{
- return make_int2(max(a.x,b.x), max(a.y,b.y));
-}
-inline __host__ __device__ int3 max(int3 a, int3 b)
-{
- return make_int3(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z));
-}
-inline __host__ __device__ int4 max(int4 a, int4 b)
-{
- return make_int4(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z), max(a.w,b.w));
-}
-
-inline __host__ __device__ uint2 max(uint2 a, uint2 b)
-{
- return make_uint2(max(a.x,b.x), max(a.y,b.y));
-}
-inline __host__ __device__ uint3 max(uint3 a, uint3 b)
-{
- return make_uint3(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z));
-}
-inline __host__ __device__ uint4 max(uint4 a, uint4 b)
-{
- return make_uint4(max(a.x,b.x), max(a.y,b.y), max(a.z,b.z), max(a.w,b.w));
-}
-
////////////////////////////////////////////////////////////////////////////////
// lerp
// - linear interpolation between a and b, based on value t in [0, 1] range
t@@ -762,14 +279,6 @@ inline __device__ __host__ Float clamp(Float f, Float a, Float b)
{
return fmaxf(a, fminf(f, b));
}
-inline __device__ __host__ int clamp(int f, int a, int b)
-{
- return max(a, min(f, b));
-}
-inline __device__ __host__ uint clamp(uint f, uint a, uint b)
-{
- return max(a, min(f, b));
-}
inline __device__ __host__ Float3 clamp(Float3 v, Float a, Float b)
{
t@@ -788,56 +297,6 @@ inline __device__ __host__ Float4 clamp(Float4 v, Float4 a, Float4 b)
return MAKE_FLOAT4(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z), clamp(v.w, a.w, b.w));
}
-inline __device__ __host__ int2 clamp(int2 v, int a, int b)
-{
- return make_int2(clamp(v.x, a, b), clamp(v.y, a, b));
-}
-inline __device__ __host__ int2 clamp(int2 v, int2 a, int2 b)
-{
- return make_int2(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y));
-}
-inline __device__ __host__ int3 clamp(int3 v, int a, int b)
-{
- return make_int3(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b));
-}
-inline __device__ __host__ int3 clamp(int3 v, int3 a, int3 b)
-{
- return make_int3(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z));
-}
-inline __device__ __host__ int4 clamp(int4 v, int a, int b)
-{
- return make_int4(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b), clamp(v.w, a, b));
-}
-inline __device__ __host__ int4 clamp(int4 v, int4 a, int4 b)
-{
- return make_int4(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z), clamp(v.w, a.w, b.w));
-}
-
-inline __device__ __host__ uint2 clamp(uint2 v, uint a, uint b)
-{
- return make_uint2(clamp(v.x, a, b), clamp(v.y, a, b));
-}
-inline __device__ __host__ uint2 clamp(uint2 v, uint2 a, uint2 b)
-{
- return make_uint2(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y));
-}
-inline __device__ __host__ uint3 clamp(uint3 v, uint a, uint b)
-{
- return make_uint3(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b));
-}
-inline __device__ __host__ uint3 clamp(uint3 v, uint3 a, uint3 b)
-{
- return make_uint3(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z));
-}
-inline __device__ __host__ uint4 clamp(uint4 v, uint a, uint b)
-{
- return make_uint4(clamp(v.x, a, b), clamp(v.y, a, b), clamp(v.z, a, b), clamp(v.w, a, b));
-}
-inline __device__ __host__ uint4 clamp(uint4 v, uint4 a, uint4 b)
-{
- return make_uint4(clamp(v.x, a.x, b.x), clamp(v.y, a.y, b.y), clamp(v.z, a.z, b.z), clamp(v.w, a.w, b.w));
-}
-
////////////////////////////////////////////////////////////////////////////////
// dot product
////////////////////////////////////////////////////////////////////////////////
t@@ -851,32 +310,6 @@ inline __host__ __device__ Float dot(Float4 a, Float4 b)
return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
}
-inline __host__ __device__ int dot(int2 a, int2 b)
-{
- return a.x * b.x + a.y * b.y;
-}
-inline __host__ __device__ int dot(int3 a, int3 b)
-{
- return a.x * b.x + a.y * b.y + a.z * b.z;
-}
-inline __host__ __device__ int dot(int4 a, int4 b)
-{
- return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
-}
-
-inline __host__ __device__ uint dot(uint2 a, uint2 b)
-{
- return a.x * b.x + a.y * b.y;
-}
-inline __host__ __device__ uint dot(uint3 a, uint3 b)
-{
- return a.x * b.x + a.y * b.y + a.z * b.z;
-}
-inline __host__ __device__ uint dot(uint4 a, uint4 b)
-{
- return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w;
-}
-
////////////////////////////////////////////////////////////////////////////////
// length
////////////////////////////////////////////////////////////////////////////////
t@@ -961,19 +394,6 @@ inline __host__ __device__ Float4 fabs(Float4 v)
return MAKE_FLOAT4(fabs(v.x), fabs(v.y), fabs(v.z), fabs(v.w));
}
-inline __host__ __device__ int2 abs(int2 v)
-{
- return make_int2(abs(v.x), abs(v.y));
-}
-inline __host__ __device__ int3 abs(int3 v)
-{
- return make_int3(abs(v.x), abs(v.y), abs(v.z));
-}
-inline __host__ __device__ int4 abs(int4 v)
-{
- return make_int4(abs(v.x), abs(v.y), abs(v.z), abs(v.w));
-}
-
////////////////////////////////////////////////////////////////////////////////
// reflect
// - returns reflection of incident ray I around surface normal N