-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForgeHelpers.cuh
40 lines (34 loc) · 1.83 KB
/
ForgeHelpers.cuh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#pragma once
//#include "Common.cuh"
#include "Flags.cuh"
#include "Types.h"
EXTERN_C
{
// z[2 * i] = x[i]; z[2 * i + 1] = y[i]
EXPORT int _MakePair(MemoryBuffer& z, const MemoryBuffer& x, const MemoryBuffer& y);
EXPORT int _MakePairRaw(ptr_t z, const ptr_t x, const ptr_t y, const unsigned size, const MemorySpace memorySpace, const MathDomain mathDomain)
{
auto _z = MemoryBuffer(z, size, memorySpace, mathDomain);
return _MakePair(_z, MemoryBuffer(x, size, memorySpace, mathDomain), MemoryBuffer(y, size, memorySpace, mathDomain));
}
// v[3 * i] = x[i]; v[3 * i + 1] = y[i]; v[3 * i + 2] = z[i]
EXPORT int _MakeTriple(MemoryBuffer& v, const MemoryBuffer& x, const MemoryBuffer& y, const MemoryBuffer& z);
EXPORT int _MakeTripleRaw(ptr_t v, const ptr_t x, const ptr_t y, const ptr_t z, const unsigned nRows, const unsigned nCols, const MemorySpace memorySpace, const MathDomain mathDomain)
{
auto _v = MemoryBuffer(z, 3 * nRows * nCols, memorySpace, mathDomain);
return _MakeTriple(_v,
MemoryBuffer(x, nRows, memorySpace, mathDomain),
MemoryBuffer(y, nCols, memorySpace, mathDomain),
MemoryBuffer(z, nRows * nCols, memorySpace, mathDomain));
}
EXPORT int _MakeRgbaJetColorMap(MemoryBuffer& out, const MemoryBuffer& in);
EXPORT int _MakeRgbaJetColorMapRaw(ptr_t out, const ptr_t in, const unsigned size, const MemorySpace memorySpace, const MathDomain mathDomain)
{
auto _out = MemoryBuffer(out, 4 * size, memorySpace, mathDomain);
return _MakeRgbaJetColorMap(_out, MemoryBuffer(in, size, memorySpace, mathDomain));
}
}
template <typename T>
GLOBAL void __MakePair__(float* RESTRICT z, const T* RESTRICT x, const T* RESTRICT y, const size_t sz);
template <typename T>
GLOBAL void __MakeTriple__(float* RESTRICT v, const T* RESTRICT x, const T* RESTRICT y, const T* RESTRICT z, const size_t nRows, const size_t nCols);