Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/opennl/extern/ONL_opennl.h')
-rw-r--r--intern/opennl/extern/ONL_opennl.h163
1 files changed, 163 insertions, 0 deletions
diff --git a/intern/opennl/extern/ONL_opennl.h b/intern/opennl/extern/ONL_opennl.h
new file mode 100644
index 00000000000..5e4bd24313c
--- /dev/null
+++ b/intern/opennl/extern/ONL_opennl.h
@@ -0,0 +1,163 @@
+/*
+ * $Id$
+ *
+ * OpenNL: Numerical Library
+ * Copyright (C) 2004 Bruno Levy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
+ *
+ * Contact: Bruno Levy
+ *
+ * levy@loria.fr
+ *
+ * ISA Project
+ * LORIA, INRIA Lorraine,
+ * Campus Scientifique, BP 239
+ * 54506 VANDOEUVRE LES NANCY CEDEX
+ * FRANCE
+ *
+ * Note that the GNU General Public License does not permit incorporating
+ * the Software into proprietary programs.
+ */
+
+/*
+#define NL_DEBUG
+#define NL_PARANOID
+*/
+
+#define NL_USE_SUPERLU
+
+#ifndef nlOPENNL_H
+#define nlOPENNL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define NL_VERSION_0_0 1
+
+/*
+ *
+ * Datatypes
+ *
+ */
+
+typedef unsigned int NLenum;
+typedef unsigned char NLboolean;
+typedef unsigned int NLbitfield;
+typedef void NLvoid;
+typedef signed char NLbyte; /* 1-byte signed */
+typedef short NLshort; /* 2-byte signed */
+typedef int NLint; /* 4-byte signed */
+typedef unsigned char NLubyte; /* 1-byte unsigned */
+typedef unsigned short NLushort; /* 2-byte unsigned */
+typedef unsigned int NLuint; /* 4-byte unsigned */
+typedef int NLsizei; /* 4-byte signed */
+typedef float NLfloat; /* single precision float */
+typedef double NLdouble; /* double precision float */
+
+typedef void* NLContext ;
+
+/*
+ *
+ * Constants
+ *
+ */
+
+#define NL_FALSE 0x0
+#define NL_TRUE 0x1
+
+/* Primitives */
+
+#define NL_SYSTEM 0x0
+#define NL_MATRIX 0x1
+#define NL_ROW 0x2
+
+/* Solver Parameters */
+
+#define NL_SOLVER 0x100
+#define NL_NB_VARIABLES 0x101
+#define NL_LEAST_SQUARES 0x102
+#define NL_SYMMETRIC 0x106
+#define NL_ERROR 0x108
+
+/* Enable / Disable */
+
+#define NL_NORMALIZE_ROWS 0x400
+
+/* Row parameters */
+
+#define NL_RIGHT_HAND_SIDE 0x500
+#define NL_ROW_SCALING 0x501
+
+/*
+ * Contexts
+ */
+ NLContext nlNewContext() ;
+ void nlDeleteContext(NLContext context) ;
+ void nlMakeCurrent(NLContext context) ;
+ NLContext nlGetCurrent() ;
+
+/*
+ * State set/get
+ */
+
+ void nlSolverParameterf(NLenum pname, NLfloat param) ;
+ void nlSolverParameteri(NLenum pname, NLint param) ;
+
+ void nlRowParameterf(NLenum pname, NLfloat param) ;
+ void nlRowParameteri(NLenum pname, NLint param) ;
+
+ void nlGetBooleanv(NLenum pname, NLboolean* params) ;
+ void nlGetFloatv(NLenum pname, NLfloat* params) ;
+ void nlGetIntergerv(NLenum pname, NLint* params) ;
+
+ void nlEnable(NLenum pname) ;
+ void nlDisable(NLenum pname) ;
+ NLboolean nlIsEnabled(NLenum pname) ;
+
+/*
+ * Variables
+ */
+ void nlSetVariable(NLuint index, NLfloat value) ;
+ NLfloat nlGetVariable(NLuint index) ;
+ void nlLockVariable(NLuint index) ;
+ void nlUnlockVariable(NLuint index) ;
+ NLboolean nlVariableIsLocked(NLuint index) ;
+
+/*
+ * Begin/End
+ */
+
+ void nlBegin(NLenum primitive) ;
+ void nlEnd(NLenum primitive) ;
+ void nlCoefficient(NLuint index, NLfloat value) ;
+
+/*
+ * Solve
+ */
+
+ NLboolean nlSolve() ;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+