NEURON
newton_thread.cpp
Go to the documentation of this file.
1 /*
2 # =============================================================================
3 # Copyright (c) 2016 - 2022 Blue Brain Project/EPFL
4 #
5 # See top-level LICENSE file for details.
6 # =============================================================================
7 */
8 #include <math.h>
9 #include <stdlib.h>
10 
13 
14 namespace coreneuron {
15 NewtonSpace* nrn_cons_newtonspace(int n, int n_instance) {
16  NewtonSpace* ns = (NewtonSpace*) emalloc(sizeof(NewtonSpace));
17  ns->n = n;
18  ns->n_instance = n_instance;
19  ns->delta_x = makevector(n * n_instance * sizeof(double));
20  ns->jacobian = makematrix(n, n * n_instance);
21  ns->perm = (int*) emalloc((unsigned) (n * n_instance * sizeof(int)));
22  ns->high_value = makevector(n * n_instance * sizeof(double));
23  ns->low_value = makevector(n * n_instance * sizeof(double));
24  ns->rowmax = makevector(n * n_instance * sizeof(double));
26  return ns;
27 }
28 
31  free((char*) ns->perm);
32  freevector(ns->delta_x);
33  freematrix(ns->jacobian);
35  freevector(ns->low_value);
36  freevector(ns->rowmax);
37  free((char*) ns);
38 }
39 } // namespace coreneuron
THIS FILE IS AUTO GENERATED DONT MODIFY IT.
double * makevector(size_t size)
Definition: nrnoc_aux.cpp:48
void nrn_newtonspace_delete_from_device(NewtonSpace *ns)
double ** makematrix(size_t nrows, size_t ncols)
Definition: nrnoc_aux.cpp:58
void nrn_newtonspace_copyto_device(NewtonSpace *ns)
static void * emalloc(size_t size)
Definition: mpispike.cpp:30
NewtonSpace * nrn_cons_newtonspace(int n, int n_instance)
void nrn_destroy_newtonspace(NewtonSpace *ns)
void freematrix(double **matrix)
Definition: nrnoc_aux.cpp:66
void freevector(double *p)
Definition: nrnoc_aux.cpp:52
int const size_t const size_t n
Definition: nrngsl.h:10