42 : signature_(&signature), mask_(
mask), min_array_size_(
mask.min_array_size())
120 this->assert_current_param_name(expected_name);
121 const int param_index = this->current_param_index();
158 int data_index = signature_->
data_index(param_index);
159 return mutable_spans_[data_index];
167 int data_index = signature_->
data_index(param_index);
168 return *vector_arrays_[data_index];
181 int param_index = this->current_param_index();
183 if (expected_name !=
"") {
188 MFParamType expected_type = signature_->
param_types[param_index];
193 void assert_current_param_name(StringRef expected_name)
197 if (expected_name.is_empty()) {
200 const int param_index = this->current_param_index();
201 StringRef actual_name = signature_->
param_names[param_index];
206 int current_param_index()
const
208 return virtual_arrays_.
size() + mutable_spans_.
size() + virtual_vector_arrays_.
size() +
209 vector_arrays_.
size();
230 int data_index = builder_->signature_->
data_index(param_index);
231 return builder_->virtual_arrays_[data_index];
243 int data_index = builder_->signature_->
data_index(param_index);
244 return !builder_->mutable_spans_[data_index].is_empty();
255 int data_index = builder_->signature_->
data_index(param_index);
256 GMutableSpan span = builder_->mutable_spans_[data_index];
262 return this->ensure_dummy_single_output(data_index);
277 int data_index = builder_->signature_->
data_index(param_index);
278 return builder_->mutable_spans_[data_index];
290 int data_index = builder_->signature_->
data_index(param_index);
291 return *builder_->virtual_vector_arrays_[data_index];
302 int data_index = builder_->signature_->
data_index(param_index);
303 return *builder_->vector_arrays_[data_index];
313 int data_index = builder_->signature_->
data_index(param_index);
314 return builder_->mutable_spans_[data_index];
325 int data_index = builder_->signature_->
data_index(param_index);
326 return *builder_->vector_arrays_[data_index];
335 if (name.
size() > 0) {
341 void assert_correct_param(
int param_index, StringRef name,
MFParamCategory category)
346 if (name.size() > 0) {
352 GMutableSpan ensure_dummy_single_output(
int data_index);
#define UNUSED_VARS_NDEBUG(...)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const CPPType & type() const
const CPPType * type() const
const CPPType & type() const
const CPPType & type() const
VArray< T > typed() const
const CPPType & type() const
const CPPType & type() const
T & construct(Args &&...args)
constexpr int64_t size() const
void append_unchecked_as(ForwardT &&...value)
void append_unchecked(const T &value)
void reserve(const int64_t min_capacity)
const CPPType & single_type() const
MFDataType data_type() const
static MFParamType ForVectorInput(const CPPType &base_type)
static MFParamType ForSingleOutput(const CPPType &type)
static MFParamType ForMutableSingle(const CPPType &type)
static MFParamType ForVectorOutput(const CPPType &base_type)
static MFParamType ForMutableVector(const CPPType &base_type)
MFParamCategory category() const
static MFParamType ForSingleInput(const CPPType &type)
void add_uninitialized_single_output(GMutableSpan ref, StringRef expected_name="")
MFParamsBuilder(const class MultiFunction &fn, const IndexMask *mask)
void add_readonly_vector_input(const GSpan single_vector, StringRef expected_name="")
void add_readonly_single_input(const GSpan span, StringRef expected_name="")
void add_readonly_vector_input(const GVVectorArray &ref, StringRef expected_name="")
void add_readonly_single_input(GPointer value, StringRef expected_name="")
void add_uninitialized_single_output(T *value, StringRef expected_name="")
void add_vector_mutable(GVectorArray &vector_array, StringRef expected_name="")
MFParamsBuilder(const class MultiFunction &fn, int64_t size)
void add_readonly_single_input(GVArray varray, StringRef expected_name="")
GVectorArray & computed_vector_array(int param_index)
ResourceScope & resource_scope()
void add_vector_output(GVectorArray &vector_array, StringRef expected_name="")
void add_readonly_vector_input(const GVectorArray &vector_array, StringRef expected_name="")
void add_readonly_single_input_value(T value, StringRef expected_name="")
void add_ignored_single_output(StringRef expected_name="")
void add_single_mutable(GMutableSpan ref, StringRef expected_name="")
GMutableSpan computed_array(int param_index)
void add_readonly_single_input(const T *value, StringRef expected_name="")
MutableSpan< T > uninitialized_single_output(int param_index, StringRef name="")
GVectorArray_TypedMutableRef< T > vector_output(int param_index, StringRef name="")
bool single_output_is_required(int param_index, StringRef name="")
const GVVectorArray & readonly_vector_input(int param_index, StringRef name="")
const VVectorArray< T > & readonly_vector_input(int param_index, StringRef name="")
MutableSpan< T > single_mutable(int param_index, StringRef name="")
GVectorArray & vector_mutable(int param_index, StringRef name="")
MFParams(MFParamsBuilder &builder)
GMutableSpan uninitialized_single_output_if_required(int param_index, StringRef name="")
MutableSpan< T > uninitialized_single_output_if_required(int param_index, StringRef name="")
const GVArray & readonly_single_input(int param_index, StringRef name="")
GMutableSpan single_mutable(int param_index, StringRef name="")
VArray< T > readonly_single_input(int param_index, StringRef name="")
GMutableSpan uninitialized_single_output(int param_index, StringRef name="")
GVectorArray_TypedMutableRef< T > vector_mutable(int param_index, StringRef name="")
GVectorArray & vector_output(int param_index, StringRef name="")
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
int virtual_vector_array_num
Vector< const char * > param_names
Vector< MFParamType > param_types
int data_index(int param_index) const