51 #define NL_VERSION_4_0 1
62 #if defined(__clang__)
63 #pragma clang diagnostic ignored "-Wunknown-pragmas"
64 #pragma clang diagnostic ignored "-Wdocumentation"
65 #pragma clang diagnostic ignored "-Wdocumentation-unknown-command"
336 #define NL_SOLVER 0x100
347 #define NL_NB_VARIABLES 0x101
361 #define NL_LEAST_SQUARES 0x102
375 #define NL_MAX_ITERATIONS 0x103
388 #define NL_THRESHOLD 0x104
400 #define NL_OMEGA 0x105
419 #define NL_SYMMETRIC 0x106
433 #define NL_USED_ITERATIONS 0x107
445 #define NL_ERROR 0x108
457 #define NL_INNER_ITERATIONS 0x109
469 #define NL_ELAPSED_TIME 0x10a
483 #define NL_PRECONDITIONER 0x10b
496 #define NL_GFLOPS 0x10c
516 #define NL_NB_SYSTEMS 0x10e
540 #define NL_SOLVER_DEFAULT 0x000
566 #define NL_BICGSTAB 0x201
583 #define NL_GMRES 0x202
599 #define NL_PRECOND_NONE 0x000
612 #define NL_PRECOND_JACOBI 0x300
627 #define NL_PRECOND_SSOR 0x301
640 #define NL_PRECOND_USER 0x303
674 #define NL_NORMALIZE_ROWS 0x400
689 #define NL_VERBOSE 0x401
705 #define NL_NO_VARIABLES_INDIRECTION 0x402
897 #define NL_FUNC_SOLVER 0x600
911 #define NL_FUNC_MATRIX 0x601
926 #define NL_FUNC_PRECONDITIONER 0x602
947 #define NL_FUNC_PROGRESS 0x603
1073 #define NL_SYSTEM 0x0
1081 #define NL_MATRIX 0x1
1097 #define NL_MATRIX_PATTERN 0x3
1345 #define NL_VARIABLES_BUFFER 0x1000
1374 #define NL_STIFFNESS_MATRIX 0x3001
1379 #define NL_MASS_MATRIX 0x3002
1394 #define NL_NB_EIGENS NL_NB_SYSTEMS
1400 #define NL_EIGEN_MAX_ITERATIONS NL_MAX_ITERATIONS
1406 #define NL_EIGEN_THRESHOLD NL_THRESHOLD
1412 #define NL_EIGEN_SOLVER 0x2000
1418 #define NL_EIGEN_SHIFT 0x2001
1424 #define NL_EIGEN_SHIFT_INVERT 0x2002
std::string extension(const std::string &path)
Gets a path extension.
NLAPI void NLAPIENTRY nlMultiAddIRightHandSide(NLuint i, NLuint k, NLdouble value)
Adds a coefficient to a component of the right hand side of the equation.
NLAPI void NLAPIENTRY nlEnable(NLenum pname)
Sets a boolean parameter to NL_TRUE.
NLAPI void NLAPIENTRY nlGetIntegerv(NLenum pname, NLint *params)
Gets the value of an integer parameter.
NLAPI NLContext NLAPIENTRY nlGetCurrent(void)
Gets the current context.
NLAPI void NLAPIENTRY nlUpdateRightHandSide(NLdouble *values)
Updates the right hand side of the constructed system in one call.
NLAPI void NLAPIENTRY nlGetFunction(NLenum pname, NLfunc *param)
Gets a function pointer.
NLAPI void NLAPIENTRY nlPrintfFuncs(NLprintfFunc f1, NLfprintfFunc f2)
Specifies user functions for printing messages.
NLAPI void NLAPIENTRY nlMatrixMode(NLenum matrix)
Specifies to which matrix the subsequent calls to nlBegin(), nlEnd(), nlCoefficient(),...
void * NLContext
An OpenNL context.
uint32_t NLuint
A 4-bytes unsigned integer.
NLAPI void NLAPIENTRY nlEigenSolverParameterd(NLenum pname, NLdouble val)
Sets a floating-point parameter of the eigen solver.
NLAPI void NLAPIENTRY nlCoefficient(NLuint i, NLdouble value)
Appends a coefficient to the current row.
NLAPI void NLAPIENTRY nlGetIntegervL(NLenum pname, NLlong *params)
Gets the value of a 64 bits integer parameter.
NLAPI void NLAPIENTRY nlUnlockVariable(NLuint index)
Unlocks a variable.
unsigned char NLubyte
A 1-byte unsigned integer.
int NLsizei
Size of an object, 4-bytes signed integer.
NLAPI void NLAPIENTRY nlMultiRightHandSide(NLuint k, NLdouble value)
Sets the right-hand side of the current row when there are several systems to be solved.
short NLshort
A 2-bytes signed integer.
NLAPI NLboolean NLAPIENTRY nlInitExtension(const char *extension)
Initializes an OpenNL extension.
uint64_t NLulong
A 8-bytes unsigned integer.
NLAPI NLulong NLAPIENTRY nlAddIJCoefficient(NLuint i, NLuint j, NLdouble value)
Adds a coefficient to the current matrix.
NLAPI void NLAPIENTRY nlSetVariable(NLuint i, NLdouble value)
Sets the value of a variable.
int(* NLprintfFunc)(const char *format,...)
Function pointer type for user printf function.
signed char NLbyte
A 1-byte signed integer.
double NLdouble
A double-precision floating-point number.
NLAPI void NLAPIENTRY nlEigenSolve(void)
Calls the eigen solver.
NLAPI NLboolean nlIsEnabled(NLenum pname)
Tests a boolean parameter.
void(* NLfunc)(void)
A function pointer.
NLAPI void NLAPIENTRY nlInitialize(int argc, char **argv)
Initializes OpenNL using command line arguments.
NLAPI void NLAPIENTRY nlGetDoublev(NLenum pname, NLdouble *params)
Gets the value of a double-precision floating-point parameter.
struct NLMatrixStruct * NLMatrix
Opaque handle to a matrix.
NLAPI void NLAPIENTRY nlMultiSetVariable(NLuint i, NLuint k, NLdouble value)
Sets the value of a variable when there are several systems to solve.
int32_t NLint
A 4-bytes signed integer.
NLAPI NLdouble NLAPIENTRY nlMultiGetVariable(NLuint i, NLuint k)
Gets the value of a variable when there are several systems to solve.
int64_t NLlong
A 8-bytes signed integer.
unsigned int NLenum
A symbolic constant.
NLAPI void NLAPIENTRY nlRightHandSide(NLdouble value)
Sets the right-hand side of the current row.
NLAPI void NLAPIENTRY nlDisable(NLenum pname)
Sets a boolean parameter to NL_FALSE.
float NLfloat
A single-precision floating-point number.
NLAPI void NLAPIENTRY nlSolverParameteri(NLenum pname, NLint param)
Specifies an integer solver parameter.
NLAPI void NLAPIENTRY nlBindBuffer(NLenum buffer, NLuint k, void *addr, NLuint stride)
Specifies a buffer binding to directly map user data to variables instead of using nlGetVariable() / ...
NLAPI void NLAPIENTRY nlLockVariable(NLuint index)
Locks a variable.
NLAPI void NLAPIENTRY nlGetBooleanv(NLenum pname, NLboolean *params)
Gets the value of a boolean parameter.
NLAPI void NLAPIENTRY nlSolverParameterd(NLenum pname, NLdouble param)
Specifies a floating-point solver parameter.
NLAPI NLboolean NLAPIENTRY nlSolve(void)
Solves the linear system in the current context.
NLAPI NLContext NLAPIENTRY nlNewContext(void)
Creates a new OpenNL context.
NLAPI void NLAPIENTRY nlEigenSolverParameteri(NLenum pname, NLint val)
Sets an integer parameter of the eigen solver.
int(* NLfprintfFunc)(FILE *out, const char *format,...)
Function pointer type for user fprintf function.
unsigned short NLushort
A 2-bytes unsigned integer.
NLAPI void NLAPIENTRY nlMakeCurrent(NLContext context)
Sets the current OpenNL context.
unsigned char NLboolean
A truth value (NL_TRUE or NL_FALSE).
NLAPI NLboolean NLAPIENTRY nlVariableIsLocked(NLuint index)
Tests whether a variable is locked.
NLAPI void NLAPIENTRY nlRowScaling(NLdouble value)
Sets the row scaling for the next row.
NLAPI NLdouble NLAPIENTRY nlGetVariable(NLuint i)
Gets the value of a variable.
NLAPI NLboolean NLAPIENTRY nlExtensionIsInitialized(const char *extension)
Tests whether an OpenNL extension is initialized.
NLAPI void NLAPIENTRY nlAddIRightHandSide(NLuint i, NLdouble value)
Adds a coefficient to a component of the right hand side of the equation.
NLAPI NLMatrix NLAPIENTRY nlGetCurrentMatrix(void)
Gets the current matrix.
NLAPI void NLAPIENTRY nlBegin(NLenum primitive)
Begins a new primitive.
NLAPI void NLAPIENTRY nlSetFunction(NLenum pname, NLfunc param)
Sets a function pointer.
NLAPI double NLAPIENTRY nlGetEigenValue(NLuint i)
Gets an eigenvalue.
void NLvoid
Return type of functions that do not return a value.
unsigned int NLbitfield
A set of symbolic constants that can be combined with the bitwise or operator.
NLAPI void NLAPIENTRY nlSetRowLength(NLuint i, NLuint n)
Specifies the length of a row of the matrix.
NLAPI void NLAPIENTRY nlEnd(NLenum primitive)
Begins a new primitive.
NLAPI void NLAPIENTRY nlAddIJCoefficientAt(NLuint i, NLuint j, NLdouble value, NLulong index)
Adds a coefficient to the current matrix with known index.
NLAPI void NLAPIENTRY nlDeleteContext(NLContext context)
Destroys an existing OpenNL context.
Some optional extensions of the OpenNL linear solver library.
Specify linkage for OpenNL integrated into Geogram.
The base class for abstract matrices.
NLAPI void NLAPIENTRY nlSetIJCoefficientAtRowOffset(NLuint i, NLuint j, NLdouble value, NLuint row_offset)
Sets a coefficient to the current matrix at a known row offset.