BeBOP Optimized Sparse Kernel Interface Library  1.0.1h
Data Structures | Defines | Functions
inmatprop.h File Reference

Input matrix properties collection and inspection. More...

#include <assert.h>
#include <stdarg.h>
#include <oski/userconst.h>

Go to the source code of this file.

Data Structures

struct  oski_inmatpropset_t
 Collected input matrix property settings. More...

Defines

#define INC_OSKI_INMATPROP_H
 inmatprop.h has been included.
#define INMATPROP_UNDEFINED   (int)(INMATPROP_NULL)
 Property undefined.
#define MIN_INMATPROP   MAT_GENERAL
 Smallest value of the enumerated type, oski_inmatprop_t.
#define MAX_INMATPROP   (INMATPROP_MAX-1)
 Largest value of the enumerated type, oski_inmatprop_t.

Functions

void oski_ClearInMatPropSet (oski_inmatpropset_t *props)
 Initialize property set with "unset" values.
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).
int oski_CollectInMatProps (oski_inmatpropset_t *props, int k,...)
 Collect input matrix properties.
int oski_CollectInMatProps_va (oski_inmatpropset_t *props, int k, va_list ap)
 Explicit variable argument version of oski_CollectInMatProps().
int oski_CollectInMatProps_arr (oski_inmatpropset_t *props, int k, const oski_inmatprop_t *in_props)
 Explicit property-array version of oski_CollectInMatProps().

Detailed Description

Input matrix properties collection and inspection.

This module implements facilities that help collect, record, and examine the input matrix properties specified by the user when she creates the matrix handle.

Header file dependencies:


Define Documentation

inmatprop.h has been included.

#define INMATPROP_UNDEFINED   (int)(INMATPROP_NULL)

Property undefined.

This macro defines a special value used to denote that an input matrix property has not yet been defined.

See also:
oski/userconst.h
oski_inmatprop_t

Referenced by oski_ClearInMatPropSet(), oski_CompleteDefaultInMatPropSet(), and UpdateProp().

#define MAX_INMATPROP   (INMATPROP_MAX-1)

Largest value of the enumerated type, oski_inmatprop_t.

Referenced by UpdateProp().

#define MIN_INMATPROP   MAT_GENERAL

Smallest value of the enumerated type, oski_inmatprop_t.

Referenced by UpdateProp().


Function Documentation

Initialize property set with "unset" values.

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().