File indexing completed on 2026-04-09 07:49:09
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include <vector>
0027 #include <string>
0028 #include "plog/Severity.h"
0029 #include "QUDARAP_API_EXPORT.hh"
0030
0031 union quad ;
0032 struct float4 ;
0033 struct dim3 ;
0034 template <typename T> struct qprop ;
0035 struct NP ;
0036
0037 template <typename T>
0038 struct QUDARAP_API QProp
0039 {
0040 static const plog::Severity LEVEL ;
0041 static const QProp<T>* INSTANCE ;
0042 static const QProp<T>* Get();
0043
0044 const NP* a ;
0045 const T* pp ;
0046 unsigned nv ;
0047
0048 unsigned ni ;
0049 unsigned nj ;
0050 unsigned nk ;
0051
0052 qprop<T>* prop ;
0053 qprop<T>* d_prop ;
0054
0055 QProp(const NP* a);
0056
0057 virtual ~QProp();
0058 void init();
0059 void upload();
0060 void cleanup();
0061
0062 void dump() const ;
0063 std::string desc() const ;
0064 qprop<T>* getDevicePtr() const ;
0065 void lookup( T* lookup, const T* domain, unsigned num_prop, unsigned domain_width ) const ;
0066 void lookup_scan(T x0, T x1, unsigned nx, const char* fold, const char* reldir=nullptr ) const ;
0067
0068 };
0069
0070