BeBOP Optimized Sparse Kernel Interface Library  1.0.1h
Functions
inmatprop.c File Reference

Input matrix properties collection and inspection. More...

#include <assert.h>
#include <oski/common.h>
#include <oski/inmatprop.h>

Functions

void oski_ClearInMatPropSet (oski_inmatpropset_t *props)
 This routine initializes all the fields of props to be "undefined.".
void oski_CompleteDefaultInMatPropSet (oski_inmatpropset_t *props)
 Complete unitialized properties with default values.
int oski_IsInMatPropSetConsistent (const oski_inmatpropset_t *props)
 Checks an input matrix property set for consistency.
void oski_DisplayInMatPropSet (const oski_inmatpropset_t *props)
 Display an input matrix's asserted properties (FOR DEBUGGING ONLY).
static int UpdateProp (oski_inmatpropset_t *props, oski_inmatprop_t cur_prop, int cur_argnum)
 Updates 'props' with the property 'p'.
int oski_CollectInMatProps (oski_inmatpropset_t *props, int k,...)
 Collect input matrix properties.
int oski_CollectInMatProps_va (oski_inmatpropset_t *props, int num_var_args, va_list ap)
 Explicit variable argument version of oski_CollectInMatProps().
int oski_CollectInMatProps_arr (oski_inmatpropset_t *props, int num_var_args, const oski_inmatprop_t *in_props)
 Explicit property-array version of oski_CollectInMatProps().

Detailed Description

Input matrix properties collection and inspection.

See also:
oski/inmatprop.h

Function Documentation

This routine initializes all the fields of props to be "undefined.".

Initialize property set with "unset" values.

Parameters:
[out]propsProperty data structure to initialize.
Precondition:
props != NULL
See also:
oski_inmatpropset_t

References oski_inmatpropset_t::has_sorted_indices, oski_inmatpropset_t::has_unique_indices, oski_inmatpropset_t::has_unit_diag_implicit, oski_inmatpropset_t::index_base, INMATPROP_UNDEFINED, and oski_inmatpropset_t::pattern.

Referenced by oski_CollectInMatProps_arr(), and oski_CollectInMatProps_va().

int oski_CollectInMatProps ( oski_inmatpropset_t props,
int  k,
  ... 
)

Collect input matrix properties.

Assuming the caller has a variable input argument list, this macro parses these arguments and collects them in an instance of oski_inmatpropset_t.

Parameters:
[in]kThe number of remaining arguments.
[out]propsA pointer to an instance of oski_inmatpropset_t. Its values will be overwritten by the call to this macro.
Returns:
A cleared 'props' structure, and returns 0 if no error occurs.
See also:
oski_inmatpropset_t, oski_inmatprop_t.

References oski_CollectInMatProps_va().

Referenced by UpdateProp().

Complete unitialized properties with default values.

Parameters:
[in,out]propsProperty data structure to complete.
Precondition:
props != NULL
See also:
oski_inmatpropset_t
Postcondition:
Checks the final property set for consistency, and aborts the program if it is not.

References oski_inmatpropset_t::has_sorted_indices, oski_inmatpropset_t::has_unique_indices, oski_inmatpropset_t::has_unit_diag_implicit, oski_inmatpropset_t::index_base, INMATPROP_UNDEFINED, MAT_GENERAL, oski_IsInMatPropSetConsistent(), and oski_inmatpropset_t::pattern.

Referenced by oski_CollectInMatProps_arr(), and oski_CollectInMatProps_va().

Display an input matrix's asserted properties (FOR DEBUGGING ONLY).

Parameters:
[in]propsAsserted input matrix property set.
Precondition:
props != NULL
Note:
This routine executes only if the debugging level is 3 or higher.

References oski_inmatpropset_t::has_sorted_indices, oski_inmatpropset_t::has_unique_indices, oski_inmatpropset_t::has_unit_diag_implicit, oski_inmatpropset_t::index_base, MAT_GENERAL, MAT_HERM_FULL, MAT_HERM_LOWER, MAT_HERM_UPPER, MAT_SYMM_FULL, MAT_SYMM_LOWER, MAT_SYMM_UPPER, MAT_TRI_LOWER, MAT_TRI_UPPER, oski_PrintDebugMessage(), and oski_inmatpropset_t::pattern.

Referenced by oski_CollectInMatProps_arr(), and oski_CollectInMatProps_va().

Checks an input matrix property set for consistency.

Parameters:
[in]propsInput matrix properties specified.
Returns:
0 if there is some detected inconsistency in the input matrix property specification, or 1 otherwise.
Precondition:
props != NULL.

References oski_inmatpropset_t::has_sorted_indices, oski_inmatpropset_t::has_unique_indices, oski_inmatpropset_t::has_unit_diag_implicit, oski_inmatpropset_t::index_base, IS_VAL_IN_RANGE, MAT_GENERAL, MAT_HERM_FULL, and oski_inmatpropset_t::pattern.

Referenced by oski_CompleteDefaultInMatPropSet().

static int UpdateProp ( oski_inmatpropset_t props,
oski_inmatprop_t  cur_prop,
int  cur_argnum 
) [static]