123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #ifndef GLOB_OPTS_H
- # define GLOB_OPTS_H
- # ifdef __cplusplus
- extern "C" {
- # endif
- #include "osqp_configure.h"
- # ifndef EMBEDDED
- # ifdef MATLAB
- # include "mex.h"
- static void* c_calloc(size_t num, size_t size) {
- void *m = mxCalloc(num, size);
- mexMakeMemoryPersistent(m);
- return m;
- }
- static void* c_malloc(size_t size) {
- void *m = mxMalloc(size);
- mexMakeMemoryPersistent(m);
- return m;
- }
- static void* c_realloc(void *ptr, size_t size) {
- void *m = mxRealloc(ptr, size);
- mexMakeMemoryPersistent(m);
- return m;
- }
- # define c_free mxFree
- # elif defined PYTHON
- # include <Python.h>
- # define c_malloc PyMem_Malloc
- # if PY_MAJOR_VERSION >= 3
- # define c_calloc PyMem_Calloc
- # else
- static void* c_calloc(size_t num, size_t size) {
- void *m = PyMem_Malloc(num * size);
- memset(m, 0, num * size);
- return m;
- }
- # endif
- # define c_free PyMem_Free
- # define c_realloc PyMem_Realloc
- # elif !defined OSQP_CUSTOM_MEMORY
- # include <stdlib.h>
- # define c_malloc malloc
- # define c_calloc calloc
- # define c_free free
- # define c_realloc realloc
- # endif
- # endif
- # ifdef DLONG
- typedef long long c_int;
- # else
- typedef int c_int;
- # endif
- # ifndef DFLOAT
- typedef double c_float;
- # else
- typedef float c_float;
- # endif
- # ifndef c_absval
- # define c_absval(x) (((x) < 0) ? -(x) : (x))
- # endif
- # ifndef c_max
- # define c_max(a, b) (((a) > (b)) ? (a) : (b))
- # endif
- # ifndef c_min
- # define c_min(a, b) (((a) < (b)) ? (a) : (b))
- # endif
- # ifndef c_roundmultiple
- # define c_roundmultiple(x, N) ((x) + .5 * (N)-c_fmod((x) + .5 * (N), (N)))
- # endif
- # if EMBEDDED != 1
- # include <math.h>
- # ifndef DFLOAT
- # define c_sqrt sqrt
- # define c_fmod fmod
- # else
- # define c_sqrt sqrtf
- # define c_fmod fmodf
- # endif
- # endif
- # ifdef PRINTING
- # include <stdio.h>
- # include <string.h>
- # ifdef MATLAB
- # define c_print mexPrintf
- # elif defined PYTHON
- # include <Python.h>
- # define c_print PySys_WriteStdout
- # elif defined R_LANG
- # include <R_ext/Print.h>
- # define c_print Rprintf
- # else
- # define c_print printf
- # endif
- # define c_eprint(...) c_print("ERROR in %s: ", __FUNCTION__); c_print(\
- __VA_ARGS__); c_print("\n");
- # endif
- # ifdef __cplusplus
- }
- # endif
- #endif
|