From 254238d19f6715f3760bbb9210df5fb4892b8010 Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Thu, 8 Feb 2024 23:52:17 -0500 Subject: [PATCH] Update C tests and examples for 64-bit integer --- src/bgo/C/bgos.c | 30 +++++----- src/bgo/C/bgos2.c | 38 ++++++------ src/bgo/C/bgos3.c | 18 +++--- src/bgo/C/bgos4.c | 22 +++---- src/bgo/C/bgot.c | 112 +++++++++++++++++------------------ src/bgo/C/bgotf.c | 114 ++++++++++++++++++------------------ src/blls/C/bllst.c | 102 ++++++++++++++++---------------- src/blls/C/bllstf.c | 102 ++++++++++++++++---------------- src/bllsb/C/bllsbt.c | 42 ++++++------- src/bllsb/C/bllsbtf.c | 42 ++++++------- src/bqp/C/bqpt.c | 64 ++++++++++---------- src/bqp/C/bqptf.c | 64 ++++++++++---------- src/bqpb/C/bqpbt.c | 30 +++++----- src/bqpb/C/bqpbtf.c | 30 +++++----- src/ccqp/C/ccqpt.c | 46 +++++++-------- src/ccqp/C/ccqptf.c | 46 +++++++-------- src/clls/C/cllst.c | 72 +++++++++++------------ src/clls/C/cllstf.c | 72 +++++++++++------------ src/cqp/C/cqpt.c | 44 +++++++------- src/cqp/C/cqptf.c | 44 +++++++------- src/cro/C/crot.c | 26 ++++---- src/cro/C/crotf.c | 26 ++++---- src/dgo/C/dgos.c | 32 +++++----- src/dgo/C/dgos2.c | 38 ++++++------ src/dgo/C/dgos3.c | 18 +++--- src/dgo/C/dgos4.c | 22 +++---- src/dgo/C/dgot.c | 112 +++++++++++++++++------------------ src/dgo/C/dgotf.c | 114 ++++++++++++++++++------------------ src/dps/C/dpst.c | 22 +++---- src/dps/C/dpstf.c | 22 +++---- src/dqp/C/dqpt.c | 54 ++++++++--------- src/dqp/C/dqpt2.c | 28 ++++----- src/dqp/C/dqptf.c | 44 +++++++------- src/eqp/C/eqpt.c | 44 +++++++------- src/eqp/C/eqptf.c | 44 +++++++------- src/fdc/C/fdct.c | 20 +++---- src/fdc/C/fdctf.c | 20 +++---- src/glrt/C/glrtt.c | 20 +++---- src/gltr/C/gltrt.c | 20 +++---- src/l2rt/C/l2rtt.c | 16 ++--- src/lhs/C/lhss.c | 14 ++--- src/lhs/C/lhst.c | 14 ++--- src/llsr/C/llsrt.c | 36 ++++++------ src/llsr/C/llsrtf.c | 36 ++++++------ src/llst/C/llstt.c | 36 ++++++------ src/llst/C/llsttf.c | 36 ++++++------ src/lpa/C/lpat.c | 28 ++++----- src/lpa/C/lpatf.c | 28 ++++----- src/lpb/C/lpbt.c | 28 ++++----- src/lpb/C/lpbtf.c | 28 ++++----- src/lsqp/C/lsqpt.c | 28 ++++----- src/lsqp/C/lsqptf.c | 28 ++++----- src/lsrt/C/lsrtt.c | 16 ++--- src/lstr/C/lstrt.c | 18 +++--- src/nls/C/nlss.c | 62 ++++++++++---------- src/nls/C/nlss2.c | 62 ++++++++++---------- src/nls/C/nlss3.c | 66 ++++++++++----------- src/nls/C/nlss4.c | 66 ++++++++++----------- src/nls/C/nlst.c | 90 ++++++++++++++-------------- src/nls/C/nlstf.c | 90 ++++++++++++++-------------- src/presolve/C/presolvet.c | 52 ++++++++-------- src/presolve/C/presolvetf.c | 52 ++++++++-------- src/psls/C/pslst.c | 22 +++---- src/psls/C/pslstf.c | 22 +++---- src/qpa/C/qpat.c | 44 +++++++------- src/qpa/C/qpatf.c | 44 +++++++------- src/qpb/C/qpbt.c | 38 ++++++------ src/qpb/C/qpbtf.c | 38 ++++++------ src/rpd/C/rpdt.c | 38 ++++++------ src/rpd/C/rpdtf.c | 38 ++++++------ src/rqs/C/rqst.c | 44 +++++++------- src/rqs/C/rqstf.c | 44 +++++++------- src/sbls/C/sblst.c | 42 ++++++------- src/sbls/C/sblstf.c | 42 ++++++------- src/sha/C/shat.c | 30 +++++----- src/sha/C/shatf.c | 30 +++++----- src/slls/C/sllst.c | 96 +++++++++++++++--------------- src/slls/C/sllstf.c | 96 +++++++++++++++--------------- src/sls/C/slst.c | 26 ++++---- src/sls/C/slstf.c | 26 ++++---- src/trb/C/trbs.c | 28 ++++----- src/trb/C/trbs2.c | 38 ++++++------ src/trb/C/trbs3.c | 18 +++--- src/trb/C/trbs4.c | 22 +++---- src/trb/C/trbt.c | 100 +++++++++++++++---------------- src/trb/C/trbtf.c | 104 ++++++++++++++++---------------- src/trs/C/trst.c | 44 +++++++------- src/trs/C/trstf.c | 44 +++++++------- src/tru/C/trus.c | 28 ++++----- src/tru/C/trus2.c | 24 ++++---- src/tru/C/trus3.c | 18 +++--- src/tru/C/trus4.c | 14 ++--- src/tru/C/trut.c | 70 +++++++++++----------- src/tru/C/trutf.c | 70 +++++++++++----------- src/ugo/C/ugos.c | 6 +- src/ugo/C/ugot.c | 4 +- src/uls/C/ulst.c | 30 +++++----- src/uls/C/ulstf.c | 30 +++++----- src/wcp/C/wcpt.c | 28 ++++----- src/wcp/C/wcptf.c | 28 ++++----- 100 files changed, 2149 insertions(+), 2149 deletions(-) diff --git a/src/bgo/C/bgos.c b/src/bgo/C/bgos.c index 20d7ce2847..1dafa7b1c5 100644 --- a/src/bgo/C/bgos.c +++ b/src/bgo/C/bgos.c @@ -12,13 +12,13 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -26,7 +26,7 @@ int main(void) { struct bgo_inform_type inform; // Initialize BGO - int status; + ipc_ status; bgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -43,14 +43,14 @@ int main(void) { userdata.mag = 1000.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {0,0,0}; // start from zero real_wp_ x_l[] = {-10.0,-10.0,-10.0}; real_wp_ x_u[] = {0.5,0.5,0.5}; char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 1, 2, 2, 2}; // Hessian H - int H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 1, 2, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle // Set storage real_wp_ g[n]; // gradient @@ -72,11 +72,11 @@ int main(void) { printf("BGO successful solve\n"); printf("TR iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -93,7 +93,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; real_wp_ freq = myuserdata->freq; @@ -105,7 +105,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; real_wp_ freq = myuserdata->freq; @@ -118,7 +118,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian of the objective -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ freq = myuserdata->freq; diff --git a/src/bgo/C/bgos2.c b/src/bgo/C/bgos2.c index 5452a59a98..7687967cba 100644 --- a/src/bgo/C/bgos2.c +++ b/src/bgo/C/bgos2.c @@ -12,15 +12,15 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -28,7 +28,7 @@ int main(void) { struct bgo_inform_type inform; // Initialize BGO - int status; + ipc_ status; bgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -43,8 +43,8 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity real_wp_ x_l[] = {-infty,-infty, 0.}; @@ -69,11 +69,11 @@ int main(void) { printf("BGO successful solve\n"); printf("iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -90,7 +90,7 @@ int main(void) { } // Objective function -int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun(ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -99,7 +99,7 @@ int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -110,7 +110,7 @@ int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian-vector product -int hessprod(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod(ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos( x[0] ) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); @@ -119,13 +119,13 @@ int hessprod(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod(int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod(ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata){ real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] + 2.0 * v[0] - cos(x[0]) * v[0]; @@ -150,7 +150,7 @@ int shessprod(int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/bgo/C/bgos3.c b/src/bgo/C/bgos3.c index 8e691b191c..073d9ca8fc 100644 --- a/src/bgo/C/bgos3.c +++ b/src/bgo/C/bgos3.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_bgo.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct bgo_inform_type inform; // Initialize BGO - int status; + ipc_ status; bgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -25,18 +25,18 @@ int main(void) { //control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity real_wp_ x_l[] = {-infty,-infty, 0.}; real_wp_ x_u[] = {1.1,1.1,1.1}; char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 2, 1, 2, 2}; // Hessian H - int H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 2, 1, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle // Reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; @@ -122,11 +122,11 @@ int main(void) { // Print solution details printf("iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/bgo/C/bgos4.c b/src/bgo/C/bgos4.c index fa28bca551..590fe07385 100644 --- a/src/bgo/C/bgos4.c +++ b/src/bgo/C/bgos4.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_bgo.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct bgo_inform_type inform; // Initialize BGO - int status; + ipc_ status; bgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -25,8 +25,8 @@ int main(void) { //control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity real_wp_ x_l[] = {-infty,-infty, 0.}; @@ -34,11 +34,11 @@ int main(void) { char H_type[] = "absent"; // specify Hessian-vector products // Reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; // Set Hessian storage format, structure and problem bounds bgo_import( &control, &data, &status, n, x_l, x_u, @@ -77,8 +77,8 @@ int main(void) { }else if(status == 7){ // obtain sparse Hessian-vector product real_wp_ tmp[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: tmp[0] = tmp[0] + 2.0 * v[0] - cos(x[0]) * v[0]; @@ -103,7 +103,7 @@ int main(void) { } } nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = tmp[j]; nnz_u = nnz_u + 1; @@ -150,11 +150,11 @@ int main(void) { // Print solution details printf("iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/bgo/C/bgot.c b/src/bgo/C/bgot.c index a10e86ad01..d4c71d1411 100644 --- a/src/bgo/C/bgot.c +++ b/src/bgo/C/bgot.c @@ -15,26 +15,26 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int prec(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int fun_diag(int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad_diag(int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess_diag(int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec(ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); +ipc_ fun_diag(ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad_diag(ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess_diag(ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -48,24 +48,24 @@ int main(void) { userdata.mag = 1000; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x_l[] = {-10,-10,-10}; real_wp_ x_u[] = {0.5,0.5,0.5}; - int H_row[] = {0, 1, 2, 2, 2}; // Hessian H - int H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle - int H_ptr[] = {0, 1, 2, 5}; // row pointers + ipc_ H_row[] = {0, 1, 2, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 5}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize BGO bgo_initialize( &data, &control, &status ); @@ -130,10 +130,10 @@ int main(void) { printf("%c: BGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -143,13 +143,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize BGO bgo_initialize( &data, &control, &status ); @@ -393,10 +393,10 @@ int main(void) { printf("%c: BGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -406,7 +406,7 @@ int main(void) { } // Objective function -int fun( int n, +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -421,7 +421,7 @@ int fun( int n, } // Gradient of the objective -int grad( int n, +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -437,8 +437,8 @@ int grad( int n, } // Hessian of the objective -int hess( int n, - int ne, +ipc_ hess( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -455,8 +455,8 @@ int hess( int n, } // Dense Hessian -int hess_dense( int n, - int ne, +ipc_ hess_dense( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -474,7 +474,7 @@ int hess_dense( int n, } // Hessian-vector product -int hessprod( int n, +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -492,13 +492,13 @@ int hessprod( int n, } // Sparse Hessian-vector product -int shessprod( int n, +ipc_ shessprod( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -508,8 +508,8 @@ int shessprod( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] + 2.0 * v[0] - mag * freq * freq * cos(freq*x[0]) * v[0]; @@ -534,7 +534,7 @@ int shessprod( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; @@ -545,7 +545,7 @@ int shessprod( int n, } // Apply preconditioner -int prec( int n, +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -557,7 +557,7 @@ int prec( int n, } // Objective function -int fun_diag( int n, +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -572,7 +572,7 @@ int fun_diag( int n, } // Gradient of the objective -int grad_diag( int n, +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -588,8 +588,8 @@ int grad_diag( int n, } // Hessian of the objective -int hess_diag( int n, - int ne, +ipc_ hess_diag( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -604,7 +604,7 @@ int hess_diag( int n, } // Hessian-vector product -int hessprod_diag( int n, +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -621,13 +621,13 @@ int hessprod_diag( int n, } // Sparse Hessian-vector product -int shessprod_diag( int n, +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -637,8 +637,8 @@ int shessprod_diag( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] - mag * freq * freq * cos(freq*x[0]) * v[0]; @@ -655,7 +655,7 @@ int shessprod_diag( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/bgo/C/bgotf.c b/src/bgo/C/bgotf.c index b2465cf2c3..19c245c006 100644 --- a/src/bgo/C/bgotf.c +++ b/src/bgo/C/bgotf.c @@ -15,30 +15,30 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, - const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, + const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -52,24 +52,24 @@ int main(void) { userdata.mag = 1000; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x_l[] = {-10,-10,-10}; real_wp_ x_u[] = {0.5,0.5,0.5}; - int H_row[] = {1, 2, 3, 3, 3}; // Hessian H - int H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle - int H_ptr[] = {1, 2, 3, 6}; // row pointers + ipc_ H_row[] = {1, 2, 3, 3, 3}; // Hessian H + ipc_ H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 6}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize BGO bgo_initialize( &data, &control, &status ); @@ -134,10 +134,10 @@ int main(void) { printf("%c: BGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -147,13 +147,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize BGO bgo_initialize( &data, &control, &status ); @@ -397,10 +397,10 @@ int main(void) { printf("%c: BGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -410,7 +410,7 @@ int main(void) { } // Objective function -int fun( int n, +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -425,7 +425,7 @@ int fun( int n, } // Gradient of the objective -int grad( int n, +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -441,8 +441,8 @@ int grad( int n, } // Hessian of the objective -int hess( int n, - int ne, +ipc_ hess( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -459,8 +459,8 @@ int hess( int n, } // Dense Hessian -int hess_dense( int n, - int ne, +ipc_ hess_dense( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -478,7 +478,7 @@ int hess_dense( int n, } // Hessian-vector product -int hessprod( int n, +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -496,13 +496,13 @@ int hessprod( int n, } // Sparse Hessian-vector product -int shessprod( int n, +ipc_ shessprod( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -512,8 +512,8 @@ int shessprod( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 1: p[0] = p[0] + 2.0 * v[0] @@ -539,7 +539,7 @@ int shessprod( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; @@ -550,7 +550,7 @@ int shessprod( int n, } // Apply preconditioner -int prec( int n, +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -562,7 +562,7 @@ int prec( int n, } // Objective function -int fun_diag( int n, +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -577,7 +577,7 @@ int fun_diag( int n, } // Gradient of the objective -int grad_diag( int n, +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -593,8 +593,8 @@ int grad_diag( int n, } // Hessian of the objective -int hess_diag( int n, - int ne, +ipc_ hess_diag( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -609,7 +609,7 @@ int hess_diag( int n, } // Hessian-vector product -int hessprod_diag( int n, +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -626,13 +626,13 @@ int hessprod_diag( int n, } // Sparse Hessian-vector product -int shessprod_diag( int n, +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -642,8 +642,8 @@ int shessprod_diag( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 1: p[0] = p[0] - mag * freq * freq * cos(freq*x[0]) * v[0]; @@ -660,7 +660,7 @@ int shessprod_diag( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/blls/C/bllst.c b/src/blls/C/bllst.c index b628712c5a..bad8f10447 100644 --- a/src/blls/C/bllst.c +++ b/src/blls/C/bllst.c @@ -9,7 +9,7 @@ #include "galahad_blls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -19,9 +19,9 @@ struct userdata_type { }; // Function prototypes -int prec( int n, const real_wp_ v[], real_wp_ p[], const void * ); +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -33,21 +33,21 @@ int main(void) { userdata.scale = 1.0; // Set problem data - int n = 10; // dimension - int o = n + 1; // number of residuals - int Ao_ne = 2 * n; // sparse Jacobian elements - int Ao_dense_ne = o * n; // dense Jacobian elements + ipc_ n = 10; // dimension + ipc_ o = n + 1; // number of residuals + ipc_ Ao_ne = 2 * n; // sparse Jacobian elements + ipc_ Ao_dense_ne = o * n; // dense Jacobian elements // row-wise storage - int Ao_row[Ao_ne]; // row indices, - int Ao_col[Ao_ne]; // column indices - int Ao_ptr_ne = o+1; // number of row pointers - int Ao_ptr[ Ao_ptr_ne]; // row pointers + ipc_ Ao_row[Ao_ne]; // row indices, + ipc_ Ao_col[Ao_ne]; // column indices + ipc_ Ao_ptr_ne = o+1; // number of row pointers + ipc_ Ao_ptr[ Ao_ptr_ne]; // row pointers real_wp_ Ao_val[Ao_ne]; // values real_wp_ Ao_dense[Ao_dense_ne]; // dense values // column-wise storage - int Ao_by_col_row[Ao_ne]; // row indices, - int Ao_by_col_ptr_ne = n+1; // number of column pointers - int Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers + ipc_ Ao_by_col_row[Ao_ne]; // row indices, + ipc_ Ao_by_col_ptr_ne = n+1; // number of column pointers + ipc_ Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers real_wp_ Ao_by_col_val[Ao_ne]; // values real_wp_ Ao_by_col_dense[Ao_dense_ne]; // dense values real_wp_ b[o]; // linear term in the objective @@ -60,43 +60,43 @@ int main(void) { real_wp_ w[o]; // weights // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st[3]; - int i, l, status; + ipc_ i, l, status; x_l[0] = -1.0; - for( int i = 1; i < n; i++) x_l[i] = - INFINITY; + for( ipc_ i = 1; i < n; i++) x_l[i] = - INFINITY; x_u[0] = 1.0; x_u[1] = INFINITY; - for( int i = 2; i < n; i++) x_u[i] = 2.0; + for( ipc_ i = 2; i < n; i++) x_u[i] = 2.0; // A = ( I ) and b = ( i * e ) // ( e^T ) ( n + 1 ) - for( int i = 0; i < n; i++) b[i] = i + 1; + for( ipc_ i = 0; i < n; i++) b[i] = i + 1; b[n] = n+1; //w[0] = 2.0; w[0] = 1.0; - for( int i = 1; i < o; i++) w[i] = 1.0; + for( ipc_ i = 1; i < o; i++) w[i] = 1.0; // A by rows - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_ptr[i] = i; Ao_row[i] = i; Ao_col[i] = i; Ao_val[i] = 1.0; } Ao_ptr[n] = n; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_row[n+i] = n; Ao_col[n+i] = i; Ao_val[n+i] = 1.0; } Ao_ptr[o] = Ao_ne; l = - 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; if ( i == j ) { @@ -107,7 +107,7 @@ int main(void) { } } } - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_dense[l] = 1.0; @@ -116,7 +116,7 @@ int main(void) { // A by columns l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_by_col_ptr[j] = l ; Ao_by_col_row[l] = j ; Ao_by_col_val[l] = 1.0; @@ -125,9 +125,9 @@ int main(void) { } Ao_by_col_ptr[n] = Ao_ne; l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { l = l + 1; if ( i == j ) { @@ -145,7 +145,7 @@ int main(void) { printf(" basic tests of blls storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize BLLS blls_initialize( &data, &control, &status ); @@ -155,8 +155,8 @@ int main(void) { //control.print_level = 1; // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; switch(d){ case 1: // sparse co-ordinate storage @@ -214,10 +214,10 @@ int main(void) { printf("%s: BLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -227,10 +227,10 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int on; + ipc_ on; on = imax( o, n ); - int eval_status, nz_v_start, nz_v_end, nz_p_end; - int nz_v[on], nz_p[o], mask[o]; + ipc_ eval_status, nz_v_start, nz_v_end, nz_p_end; + ipc_ nz_v[on], nz_p[o], mask[o]; real_wp_ v[on], p[on]; nz_p_end = 0; @@ -243,11 +243,11 @@ int main(void) { // control.print_level = 1; // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; strcpy( st, "RC" ); - for( int i = 0; i < o; i++) mask[i] = 0; + for( ipc_ i = 0; i < o; i++) mask[i] = 0; blls_import_without_a( &control, &data, &status, n, o ) ; while(true){ // reverse-communication loop blls_solve_reverse_a_prod( &data, &status, &eval_status, n, o, b, @@ -260,23 +260,23 @@ int main(void) { break; }else if(status == 2){ // evaluate p = Av p[n]=0.0; - for( int i = 0; i < n; i++){ + for( ipc_ i = 0; i < n; i++){ p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 3){ // evaluate p = A^Tv - for( int i = 0; i < n; i++) p[i] = v[i] + v[n]; + for( ipc_ i = 0; i < n; i++) p[i] = v[i] + v[n]; }else if(status == 4){ // evaluate p = Av for sparse v p[n]=0.0; - for( int i = 0; i < n; i++) p[i] = 0.0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ i = 0; i < n; i++) p[i] = 0.0; + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 5){ // evaluate p = sparse Av for sparse v nz_p_end = 0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; if (mask[i] == 0){ mask[i] = 1; @@ -293,14 +293,14 @@ int main(void) { p[n] = p[n] + v[i]; } } - for( int l = 0; l < nz_p_end; l++) mask[nz_p[l]] = 0; + for( ipc_ l = 0; l < nz_p_end; l++) mask[nz_p[l]] = 0; }else if(status == 6){ // evaluate p = sparse A^Tv - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; p[i] = v[i] + v[n]; } }else if(status == 7){ // evaluate p = P^{-}v - for( int i = 0; i < n; i++) p[i] = userdata.scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = userdata.scale * v[i]; }else{ printf(" the value %1i of status should not occur\n", status); break; @@ -320,10 +320,10 @@ int main(void) { printf("%s: BLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -331,9 +331,9 @@ int main(void) { } // Apply preconditioner -int prec( int n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ scale = myuserdata->scale; - for( int i = 0; i < n; i++) p[i] = scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = scale * v[i]; return 0; } diff --git a/src/blls/C/bllstf.c b/src/blls/C/bllstf.c index 9099b611c1..9a3f4553a0 100644 --- a/src/blls/C/bllstf.c +++ b/src/blls/C/bllstf.c @@ -9,7 +9,7 @@ #include "galahad_blls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -19,9 +19,9 @@ struct userdata_type { }; // Function prototypes -int prec( int n, const real_wp_ v[], real_wp_ p[], const void * ); +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -33,21 +33,21 @@ int main(void) { userdata.scale = 1.0; // Set problem data - int n = 10; // dimension - int o = n + 1; // number of residuals - int Ao_ne = 2 * n; // sparse Jacobian elements - int Ao_dense_ne = o * n; // dense Jacobian elements + ipc_ n = 10; // dimension + ipc_ o = n + 1; // number of residuals + ipc_ Ao_ne = 2 * n; // sparse Jacobian elements + ipc_ Ao_dense_ne = o * n; // dense Jacobian elements // row-wise storage - int Ao_row[Ao_ne]; // row indices, - int Ao_col[Ao_ne]; // column indices - int Ao_ptr_ne = o+1; // number of row pointers - int Ao_ptr[ Ao_ptr_ne]; // row pointers + ipc_ Ao_row[Ao_ne]; // row indices, + ipc_ Ao_col[Ao_ne]; // column indices + ipc_ Ao_ptr_ne = o+1; // number of row pointers + ipc_ Ao_ptr[ Ao_ptr_ne]; // row pointers real_wp_ Ao_val[Ao_ne]; // values real_wp_ Ao_dense[Ao_dense_ne]; // dense values // column-wise storage - int Ao_by_col_row[Ao_ne]; // row indices, - int Ao_by_col_ptr_ne = n+1; // number of column pointers - int Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers + ipc_ Ao_by_col_row[Ao_ne]; // row indices, + ipc_ Ao_by_col_ptr_ne = n+1; // number of column pointers + ipc_ Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers real_wp_ Ao_by_col_val[Ao_ne]; // values real_wp_ Ao_by_col_dense[Ao_dense_ne]; // dense values real_wp_ b[o]; // linear term in the objective @@ -60,43 +60,43 @@ int main(void) { real_wp_ w[o]; // weights // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st[3]; - int i, l, status; + ipc_ i, l, status; x_l[0] = -1.0; - for( int i = 1; i < n; i++) x_l[i] = - INFINITY; + for( ipc_ i = 1; i < n; i++) x_l[i] = - INFINITY; x_u[0] = 1.0; x_u[1] = INFINITY; - for( int i = 2; i < n; i++) x_u[i] = 2.0; + for( ipc_ i = 2; i < n; i++) x_u[i] = 2.0; // A = ( I ) and b = ( i * e ) // ( e^T ) ( n + 1 ) - for( int i = 0; i < n; i++) b[i] = i + 1; + for( ipc_ i = 0; i < n; i++) b[i] = i + 1; b[n] = n+1; // w[0] = 2.0; w[0] = 1.0; - for( int i = 1; i < o; i++) w[i] = 1.0; + for( ipc_ i = 1; i < o; i++) w[i] = 1.0; // A by rows - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_ptr[i] = i + 1; Ao_row[i] = i + 1; Ao_col[i] = i + 1; Ao_val[i] = 1.0; } Ao_ptr[n] = n + 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_row[n+i] = o; Ao_col[n+i] = i + 1; Ao_val[n+i] = 1.0; } Ao_ptr[o] = Ao_ne + 1; l = - 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; if ( i == j ) { @@ -107,7 +107,7 @@ int main(void) { } } } - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_dense[l] = 1.0; @@ -116,7 +116,7 @@ int main(void) { // A by columns l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_by_col_ptr[j] = l + 1; Ao_by_col_row[l] = j + 1; Ao_by_col_val[l] = 1.0; @@ -125,9 +125,9 @@ int main(void) { } Ao_by_col_ptr[n] = Ao_ne + 1; l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { l = l + 1; if ( i == j ) { @@ -145,7 +145,7 @@ int main(void) { printf(" basic tests of blls storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize BLLS blls_initialize( &data, &control, &status ); @@ -154,8 +154,8 @@ int main(void) { control.f_indexing = true; // fortran sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; switch(d){ case 1: // sparse co-ordinate storage @@ -213,10 +213,10 @@ int main(void) { printf("%s: BLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -226,10 +226,10 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int on; + ipc_ on; on = imax( o, n ); - int eval_status, nz_v_start, nz_v_end, nz_p_end; - int nz_v[on], nz_p[o], mask[o]; + ipc_ eval_status, nz_v_start, nz_v_end, nz_p_end; + ipc_ nz_v[on], nz_p[o], mask[o]; real_wp_ v[on], p[on]; nz_p_end = 0; @@ -241,11 +241,11 @@ int main(void) { control.f_indexing = true; // fortran sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; strcpy( st, "RC" ); - for( int i = 0; i < o; i++) mask[i] = 0; + for( ipc_ i = 0; i < o; i++) mask[i] = 0; blls_import_without_a( &control, &data, &status, n, o ) ; while(true){ // reverse-communication loop blls_solve_reverse_a_prod( &data, &status, &eval_status, n, o, b, @@ -258,23 +258,23 @@ int main(void) { break; }else if(status == 2){ // evaluate p = Av p[n]=0.0; - for( int i = 0; i < n; i++){ + for( ipc_ i = 0; i < n; i++){ p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 3){ // evaluate p = A^Tv - for( int i = 0; i < n; i++) p[i] = v[i] + v[n]; + for( ipc_ i = 0; i < n; i++) p[i] = v[i] + v[n]; }else if(status == 4){ // evaluate p = Av for sparse v p[n]=0.0; - for( int i = 0; i < n; i++) p[i] = 0.0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ i = 0; i < n; i++) p[i] = 0.0; + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 5){ // evaluate p = sparse Av for sparse v nz_p_end = 0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; if (mask[i] == 0){ mask[i] = 1; @@ -291,14 +291,14 @@ int main(void) { p[n] = p[n] + v[i]; } } - for( int l = 0; l < nz_p_end; l++) mask[nz_p[l]-1] = 0; + for( ipc_ l = 0; l < nz_p_end; l++) mask[nz_p[l]-1] = 0; }else if(status == 6){ // evaluate p = sparse A^Tv - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; p[i] = v[i] + v[n]; } }else if(status == 7){ // evaluate p = P^{-}v - for( int i = 0; i < n; i++) p[i] = userdata.scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = userdata.scale * v[i]; }else{ printf(" the value %1i of status should not occur\n", status); break; @@ -318,10 +318,10 @@ int main(void) { printf("%s: BLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -329,9 +329,9 @@ int main(void) { } // Apply preconditioner -int prec( int n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ scale = myuserdata->scale; - for( int i = 0; i < n; i++) p[i] = scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = scale * v[i]; return 0; } diff --git a/src/bllsb/C/bllsbt.c b/src/bllsb/C/bllsbt.c index 6df3769884..39d00dda7d 100644 --- a/src/bllsb/C/bllsbt.c +++ b/src/bllsb/C/bllsbt.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_bllsb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,8 +16,8 @@ int main(void) { struct bllsb_inform_type inform; // Set problem data - int n = 3; // dimension - int o = 4; // number of observations + ipc_ n = 3; // dimension + ipc_ o = 4; // number of observations real_wp_ sigma = 1.0; // regularization weight real_wp_ b[] = {2.0, 2.0, 3.0, 1.0}; // observations real_wp_ x_l[] = {-1.0, - INFINITY, - INFINITY}; // variable lower bound @@ -26,15 +26,15 @@ int main(void) { // Set output storage real_wp_ r[o]; // residual values - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st[3]; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of bllsb storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize BLLSB bllsb_initialize( &data, &control, &status ); @@ -54,9 +54,9 @@ int main(void) { case 1: // sparse co-ordinate storage strcpy(st, "CO"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {0, 0, 1, 1, 2, 2, 3}; // row indices - int Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {0, 0, 1, 1, 2, 2, 3}; // row indices + ipc_ Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals bllsb_import( &control, &data, &status, n, o, "coordinate", Ao_ne, Ao_row, Ao_col, 0, NULL ); @@ -67,10 +67,10 @@ int main(void) { case 2: // sparse by rows strcpy(st, "SR"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices - int Ao_ptr_ne = o + 1; // number of row pointers - int Ao_ptr[] = {0, 2, 4, 6, 7}; // row pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices + ipc_ Ao_ptr_ne = o + 1; // number of row pointers + ipc_ Ao_ptr[] = {0, 2, 4, 6, 7}; // row pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals bllsb_import( &control, &data, &status, n, o, "sparse_by_rows", Ao_ne, NULL, Ao_col, @@ -82,10 +82,10 @@ int main(void) { case 3: // sparse by columns strcpy(st, "SC"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {0, 2, 0, 1, 3, 1, 2}; // row indices - int Ao_ptr_ne = n + 1; // number of column pointers - int Ao_ptr[] = {0, 2, 5, 7}; // column pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {0, 2, 0, 1, 3, 1, 2}; // row indices + ipc_ Ao_ptr_ne = n + 1; // number of column pointers + ipc_ Ao_ptr[] = {0, 2, 5, 7}; // column pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals bllsb_import( &control, &data, &status, n, o, "sparse_by_columns", Ao_ne, Ao_row, NULL, @@ -97,7 +97,7 @@ int main(void) { case 4: // dense by rows strcpy(st, "DR"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0}; bllsb_import( &control, &data, &status, n, o, @@ -109,7 +109,7 @@ int main(void) { case 5: // dense by cols strcpy(st, "DC"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0}; bllsb_import( &control, &data, &status, n, o, @@ -128,10 +128,10 @@ int main(void) { printf("%s: BLLSB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/bllsb/C/bllsbtf.c b/src/bllsb/C/bllsbtf.c index 716ae5ef16..f83a5f014d 100644 --- a/src/bllsb/C/bllsbtf.c +++ b/src/bllsb/C/bllsbtf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_bllsb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,8 +16,8 @@ int main(void) { struct bllsb_inform_type inform; // Set problem data - int n = 3; // dimension - int o = 4; // number of observations + ipc_ n = 3; // dimension + ipc_ o = 4; // number of observations real_wp_ sigma = 1.0; // regularization weight real_wp_ b[] = {2.0, 2.0, 3.0, 1.0}; // observations real_wp_ x_l[] = {-1.0, - INFINITY, - INFINITY}; // variable lower bound @@ -26,15 +26,15 @@ int main(void) { // Set output storage real_wp_ r[o]; // residual values - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st[3]; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of bllsb storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize BLLSB bllsb_initialize( &data, &control, &status ); @@ -54,9 +54,9 @@ int main(void) { case 1: // sparse co-ordinate storage strcpy(st, "CO"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {1, 1, 2, 2, 3, 3, 4}; // row indices - int Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {1, 1, 2, 2, 3, 3, 4}; // row indices + ipc_ Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals bllsb_import( &control, &data, &status, n, o, "coordinate", Ao_ne, Ao_row, Ao_col, 0, NULL ); @@ -67,10 +67,10 @@ int main(void) { case 2: // sparse by rows strcpy(st, "SR"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices - int Ao_ptr_ne = o + 1; // number of row pointers - int Ao_ptr[] = {1, 3, 5, 7, 8}; // row pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices + ipc_ Ao_ptr_ne = o + 1; // number of row pointers + ipc_ Ao_ptr[] = {1, 3, 5, 7, 8}; // row pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals bllsb_import( &control, &data, &status, n, o, "sparse_by_rows", Ao_ne, NULL, Ao_col, @@ -82,10 +82,10 @@ int main(void) { case 3: // sparse by columns strcpy(st, "SC"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {1, 3, 1, 2, 4, 2, 3}; // row indices - int Ao_ptr_ne = n + 1; // number of column pointers - int Ao_ptr[] = {1, 3, 6, 8}; // column pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {1, 3, 1, 2, 4, 2, 3}; // row indices + ipc_ Ao_ptr_ne = n + 1; // number of column pointers + ipc_ Ao_ptr[] = {1, 3, 6, 8}; // column pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals bllsb_import( &control, &data, &status, n, o, "sparse_by_columns", Ao_ne, Ao_row, NULL, @@ -97,7 +97,7 @@ int main(void) { case 4: // dense by rows strcpy(st, "DR"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0}; bllsb_import( &control, &data, &status, n, o, @@ -109,7 +109,7 @@ int main(void) { case 5: // dense by cols strcpy(st, "DC"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0}; bllsb_import( &control, &data, &status, n, o, @@ -128,10 +128,10 @@ int main(void) { printf("%s: BLLSB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/bqp/C/bqpt.c b/src/bqp/C/bqpt.c index dd0959d500..da9320ef1b 100644 --- a/src/bqp/C/bqpt.c +++ b/src/bqp/C/bqpt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_bqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,12 +15,12 @@ int main(void) { struct bqp_inform_type inform; // Set problem data - int n = 10; // dimension - int H_ne = 2 * n - 1; // Hesssian elements, NB lower triangle - int H_dense_ne = n * ( n + 1 ) / 2; // dense Hessian elements - int H_row[H_ne]; // row indices, - int H_col[H_ne]; // column indices - int H_ptr[n+1]; // row pointers + ipc_ n = 10; // dimension + ipc_ H_ne = 2 * n - 1; // Hesssian elements, NB lower triangle + ipc_ H_dense_ne = n * ( n + 1 ) / 2; // dense Hessian elements + ipc_ H_row[H_ne]; // row indices, + ipc_ H_col[H_ne]; // column indices + ipc_ H_ptr[n+1]; // row pointers real_wp_ H_val[H_ne]; // values real_wp_ H_dense[H_dense_ne]; // dense values real_wp_ H_diag[n]; // diagonal values @@ -32,24 +32,24 @@ int main(void) { real_wp_ z[n]; // dual variables // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st; - int i, l, status; + ipc_ i, l, status; g[0] = 2.0; - for( int i = 1; i < n; i++) g[i] = 0.0; + for( ipc_ i = 1; i < n; i++) g[i] = 0.0; x_l[0] = -1.0; - for( int i = 1; i < n; i++) x_l[i] = - INFINITY; + for( ipc_ i = 1; i < n; i++) x_l[i] = - INFINITY; x_u[0] = 1.0; x_u[1] = INFINITY; - for( int i = 2; i < n; i++) x_u[i] = 2.0; + for( ipc_ i = 2; i < n; i++) x_u[i] = 2.0; // H = tridiag(2,1), H_dense = diag(2) l = 0 ; H_ptr[0] = l; H_row[l] = 0; H_col[l] = 0; H_val[l] = 2.0; - for( int i = 1; i < n; i++) + for( ipc_ i = 1; i < n; i++) { l = l + 1; H_ptr[i] = l; @@ -60,10 +60,10 @@ int main(void) { H_ptr[n] = l + 1; l = - 1 ; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { H_diag[i] = 2.0; - for( int j = 0; j <= i; j++) + for( ipc_ j = 0; j <= i; j++) { l = l + 1; if ( j < i - 1 ) { @@ -82,7 +82,7 @@ int main(void) { printf(" basic tests of bqp storage formats\n\n"); - for( int d=1; d <= 4; d++){ + for( ipc_ d=1; d <= 4; d++){ // Initialize BQP bqp_initialize( &data, &control, &status ); @@ -91,8 +91,8 @@ int main(void) { control.f_indexing = false; // C sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; switch(d){ case 1: // sparse co-ordinate storage @@ -134,10 +134,10 @@ int main(void) { printf("%c: BQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -147,8 +147,8 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int nz_v_start, nz_v_end, nz_prod_end; - int nz_v[n], nz_prod[n], mask[n]; + ipc_ nz_v_start, nz_v_end, nz_prod_end; + ipc_ nz_v[n], nz_prod[n], mask[n]; real_wp_ v[n], prod[n]; nz_prod_end = 0; @@ -161,11 +161,11 @@ int main(void) { control.f_indexing = false; // C sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; st = 'I'; - for( int i = 0; i < n; i++) mask[i] = 0; + for( ipc_ i = 0; i < n; i++) mask[i] = 0; bqp_import_without_h( &control, &data, &status, n ) ; while(true){ // reverse-communication loop bqp_solve_reverse_h_prod( &data, &status, n, g, f, x_l, x_u, @@ -178,11 +178,11 @@ int main(void) { break; }else if(status == 2){ // evaluate Hv prod[0] = 2.0 * v[0] + v[1]; - for( int i = 1; i < n-1; i++) prod[i] = 2.0 * v[i] + v[i-1] + v[i+1]; + for( ipc_ i = 1; i < n-1; i++) prod[i] = 2.0 * v[i] + v[i-1] + v[i+1]; prod[n-1] = 2.0 * v[n-1] + v[n-2]; }else if(status == 3){ // evaluate Hv for sparse v - for( int i = 0; i < n; i++) prod[i] = 0.0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ i = 0; i < n; i++) prod[i] = 0.0; + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; if (i > 0) prod[i-1] = prod[i-1] + v[i]; prod[i] = prod[i] + 2.0 * v[i]; @@ -190,7 +190,7 @@ int main(void) { } }else if(status == 4){ // evaluate sarse Hv for sparse v nz_prod_end = 0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; if (i > 0){ if (mask[i-1] == 0){ @@ -221,7 +221,7 @@ int main(void) { } } } - for( int l = 0; l < nz_prod_end; l++) mask[nz_prod[l]] = 0; + for( ipc_ l = 0; l < nz_prod_end; l++) mask[nz_prod[l]] = 0; }else{ printf(" the value %1i of status should not occur\n", status); break; @@ -239,10 +239,10 @@ int main(void) { printf("%c: BQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/bqp/C/bqptf.c b/src/bqp/C/bqptf.c index 8cc13dd823..671da42a26 100644 --- a/src/bqp/C/bqptf.c +++ b/src/bqp/C/bqptf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_bqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,12 +15,12 @@ int main(void) { struct bqp_inform_type inform; // Set problem data - int n = 10; // dimension - int H_ne = 2 * n - 1; // Hesssian elements, NB lower triangle - int H_dense_ne = n * ( n + 1 ) / 2; // dense Hessian elements - int H_row[H_ne]; // row indices, - int H_col[H_ne]; // column indices - int H_ptr[n+1]; // row pointers + ipc_ n = 10; // dimension + ipc_ H_ne = 2 * n - 1; // Hesssian elements, NB lower triangle + ipc_ H_dense_ne = n * ( n + 1 ) / 2; // dense Hessian elements + ipc_ H_row[H_ne]; // row indices, + ipc_ H_col[H_ne]; // column indices + ipc_ H_ptr[n+1]; // row pointers real_wp_ H_val[H_ne]; // values real_wp_ H_dense[H_dense_ne]; // dense values real_wp_ H_diag[n]; // diagonal values @@ -32,24 +32,24 @@ int main(void) { real_wp_ z[n]; // dual variables // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st; - int i, l, status; + ipc_ i, l, status; g[0] = 2.0; - for( int i = 1; i < n; i++) g[i] = 0.0; + for( ipc_ i = 1; i < n; i++) g[i] = 0.0; x_l[0] = -1.0; - for( int i = 1; i < n; i++) x_l[i] = - INFINITY; + for( ipc_ i = 1; i < n; i++) x_l[i] = - INFINITY; x_u[0] = 1.0; x_u[1] = INFINITY; - for( int i = 2; i < n; i++) x_u[i] = 2.0; + for( ipc_ i = 2; i < n; i++) x_u[i] = 2.0; // H = tridiag(2,1), H_dense = diag(2) l = 0 ; H_ptr[0] = l + 1; H_row[l] = 1; H_col[l] = 1; H_val[l] = 2.0; - for( int i = 1; i < n; i++) + for( ipc_ i = 1; i < n; i++) { l = l + 1; H_ptr[i] = l + 1; @@ -60,10 +60,10 @@ int main(void) { H_ptr[n] = l + 2; l = - 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { H_diag[i] = 2.0; - for( int j = 0; j <= i; j++) + for( ipc_ j = 0; j <= i; j++) { l = l + 1; if ( j < i - 1 ) { @@ -82,7 +82,7 @@ int main(void) { printf(" basic tests of bqp storage formats\n\n"); - for( int d=1; d <= 4; d++){ + for( ipc_ d=1; d <= 4; d++){ // Initialize BQP bqp_initialize( &data, &control, &status ); @@ -91,8 +91,8 @@ int main(void) { control.f_indexing = true; // fortran sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; switch(d){ case 1: // sparse co-ordinate storage @@ -135,10 +135,10 @@ int main(void) { printf("%c: BQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -148,8 +148,8 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int nz_v_start, nz_v_end, nz_prod_end; - int nz_v[n], nz_prod[n], mask[n]; + ipc_ nz_v_start, nz_v_end, nz_prod_end; + ipc_ nz_v[n], nz_prod[n], mask[n]; real_wp_ v[n], prod[n]; nz_prod_end = 0; @@ -162,11 +162,11 @@ int main(void) { control.f_indexing = true; // fortran sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; st = 'I'; - for( int i = 0; i < n; i++) mask[i] = 0; + for( ipc_ i = 0; i < n; i++) mask[i] = 0; bqp_import_without_h( &control, &data, &status, n ) ; while(true){ // reverse-communication loop bqp_solve_reverse_h_prod( &data, &status, n, g, f, x_l, x_u, @@ -179,11 +179,11 @@ int main(void) { break; }else if(status == 2){ // evaluate Hv prod[0] = 2.0 * v[0] + v[1]; - for( int i = 1; i < n-1; i++) prod[i] = 2.0 * v[i] + v[i-1] + v[i+1]; + for( ipc_ i = 1; i < n-1; i++) prod[i] = 2.0 * v[i] + v[i-1] + v[i+1]; prod[n-1] = 2.0 * v[n-1] + v[n-2]; }else if(status == 3){ // evaluate Hv for sparse v - for( int i = 0; i < n; i++) prod[i] = 0.0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ i = 0; i < n; i++) prod[i] = 0.0; + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; if (i > 0) prod[i-1] = prod[i-1] + v[i]; prod[i] = prod[i] + 2.0 * v[i]; @@ -191,7 +191,7 @@ int main(void) { } }else if(status == 4){ // evaluate sarse Hv for sparse v nz_prod_end = 0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; if (i > 0){ if (mask[i-1] == 0){ @@ -222,7 +222,7 @@ int main(void) { } } } - for( int l = 0; l < nz_prod_end; l++) mask[nz_prod[l]] = 0; + for( ipc_ l = 0; l < nz_prod_end; l++) mask[nz_prod[l]] = 0; }else{ printf(" the value %1i of status should not occur\n", status); break; @@ -241,10 +241,10 @@ int main(void) { printf("%c: BQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/bqpb/C/bqpbt.c b/src/bqpb/C/bqpbt.c index b920e6f766..2679ea046b 100644 --- a/src/bqpb/C/bqpbt.c +++ b/src/bqpb/C/bqpbt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_bqpb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,11 +15,11 @@ int main(void) { struct bqpb_inform_type inform; // Set problem data - int n = 3; // dimension - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {2.0, 0.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective @@ -27,15 +27,15 @@ int main(void) { real_wp_ x_u[] = {1.0, INFINITY, 2.0}; // variable upper bound // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize BQPB bqpb_initialize( &data, &control, &status ); @@ -65,7 +65,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H + ipc_ H_dense_ne = 6; // number of elements of H real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; bqpb_import( &control, &data, &status, n, "dense", H_ne, NULL, NULL, NULL ); @@ -114,10 +114,10 @@ int main(void) { printf("%c: BQPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -125,7 +125,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize BQPB bqpb_initialize( &data, &control, &status ); @@ -161,10 +161,10 @@ int main(void) { printf("%c: BQPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/bqpb/C/bqpbtf.c b/src/bqpb/C/bqpbtf.c index 8aa46ea53e..8990d2abcd 100644 --- a/src/bqpb/C/bqpbtf.c +++ b/src/bqpb/C/bqpbtf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_bqpb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,11 +15,11 @@ int main(void) { struct bqpb_inform_type inform; // Set problem data - int n = 3; // dimension - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {2.0, 0.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective @@ -27,15 +27,15 @@ int main(void) { real_wp_ x_u[] = {1.0, INFINITY, 2.0}; // variable upper bound // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize BQPB bqpb_initialize( &data, &control, &status ); @@ -65,7 +65,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H + ipc_ H_dense_ne = 6; // number of elements of H real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; bqpb_import( &control, &data, &status, n, "dense", H_ne, NULL, NULL, NULL ); @@ -114,10 +114,10 @@ int main(void) { printf("%c: BQPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -125,7 +125,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize BQPB bqpb_initialize( &data, &control, &status ); @@ -161,10 +161,10 @@ int main(void) { printf("%c: BQPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/ccqp/C/ccqpt.c b/src/ccqp/C/ccqpt.c index 9c18ebb0a1..941a912b05 100644 --- a/src/ccqp/C/ccqpt.c +++ b/src/ccqp/C/ccqpt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_ccqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct ccqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,17 +36,17 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - // for( int d=1; d <= 7; d++){ - for( int d=1; d <= 6; d++){ + // for( ipc_ d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 6; d++){ // Initialize CCQP ccqp_initialize( &data, &control, &status ); @@ -81,8 +81,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; ccqp_import( &control, &data, &status, n, m, @@ -142,10 +142,10 @@ int main(void) { printf("%c: CCQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -153,7 +153,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize CCQP ccqp_initialize( &data, &control, &status ); @@ -192,10 +192,10 @@ int main(void) { printf("%c: CCQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/ccqp/C/ccqptf.c b/src/ccqp/C/ccqptf.c index 1c671ef295..978020b3e5 100644 --- a/src/ccqp/C/ccqptf.c +++ b/src/ccqp/C/ccqptf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_ccqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct ccqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,17 +36,17 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - // for( int d=1; d <= 7; d++){ - for( int d=1; d <= 6; d++){ + // for( ipc_ d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 6; d++){ // Initialize CCQP ccqp_initialize( &data, &control, &status ); @@ -81,8 +81,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; ccqp_import( &control, &data, &status, n, m, @@ -142,10 +142,10 @@ int main(void) { printf("%c: CCQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -153,7 +153,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize CCQP ccqp_initialize( &data, &control, &status ); @@ -192,10 +192,10 @@ int main(void) { printf("%c: CCQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/clls/C/cllst.c b/src/clls/C/cllst.c index 4cbecd0540..ee22a6cb90 100644 --- a/src/clls/C/cllst.c +++ b/src/clls/C/cllst.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_clls.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,9 +16,9 @@ int main(void) { struct clls_inform_type inform; // Set problem data - int n = 3; // dimension - int o = 4; // number of observations - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ o = 4; // number of observations + ipc_ m = 2; // number of general constraints real_wp_ sigma = 1.0; // regularization weight real_wp_ b[] = {2.0, 2.0, 3.0, 1.0}; // observations real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound @@ -30,16 +30,16 @@ int main(void) { // Set output storage real_wp_ r[o]; // residual values real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st[3]; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of clls storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize CLLS clls_initialize( &data, &control, &status ); @@ -59,13 +59,13 @@ int main(void) { case 1: // sparse co-ordinate storage strcpy(st, "CO"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {0, 0, 1, 1, 2, 2, 3}; // row indices - int Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {0, 0, 1, 1, 2, 2, 3}; // row indices + ipc_ Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals - int A_ne = 4; // constraint Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ne = 4; // constraint Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0}; // values clls_import( &control, &data, &status, n, o, m, "coordinate", Ao_ne, Ao_row, Ao_col, 0, NULL, @@ -78,15 +78,15 @@ int main(void) { case 2: // sparse by rows strcpy(st, "SR"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices - int Ao_ptr_ne = o + 1; // number of row pointers - int Ao_ptr[] = {0, 2, 4, 6, 7}; // row pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_col[] = {0, 1, 1, 2, 0, 2, 1}; // column indices + ipc_ Ao_ptr_ne = o + 1; // number of row pointers + ipc_ Ao_ptr[] = {0, 2, 4, 6, 7}; // row pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals - int A_ne = 4; // constraint Jacobian elements - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr_ne = m + 1; // number of row pointers - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // constraint Jacobian elements + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr_ne = m + 1; // number of row pointers + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values clls_import( &control, &data, &status, n, o, m, "sparse_by_rows", Ao_ne, NULL, Ao_col, @@ -101,15 +101,15 @@ int main(void) { case 3: // sparse by columns strcpy(st, "SC"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {0, 2, 0, 1, 3, 1, 2}; // row indices - int Ao_ptr_ne = n + 1; // number of column pointers - int Ao_ptr[] = {0, 2, 5, 7}; // column pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {0, 2, 0, 1, 3, 1, 2}; // row indices + ipc_ Ao_ptr_ne = n + 1; // number of column pointers + ipc_ Ao_ptr[] = {0, 2, 5, 7}; // column pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals - int A_ne = 4; // constraint Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_ptr_ne = n + 1; // number of column pointers - int A_ptr[] = {0, 1, 3, 4}; // column pointers + ipc_ A_ne = 4; // constraint Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_ptr_ne = n + 1; // number of column pointers + ipc_ A_ptr[] = {0, 1, 3, 4}; // column pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values clls_import( &control, &data, &status, n, o, m, "sparse_by_columns", Ao_ne, Ao_row, NULL, @@ -124,10 +124,10 @@ int main(void) { case 4: // dense by rows strcpy(st, "DR"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0}; - int A_ne = 6; // constraint Jacobian elements + ipc_ A_ne = 6; // constraint Jacobian elements real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; clls_import( &control, &data, &status, n, o, m, "dense", Ao_ne, NULL, NULL, 0, NULL, @@ -140,10 +140,10 @@ int main(void) { case 5: // dense by cols strcpy(st, "DC"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0}; - int A_ne = 6; // constraint Jacobian elements + ipc_ A_ne = 6; // constraint Jacobian elements real_wp_ A_dense[] = {2.0, 0.0, 1.0, 1.0, 0.0, 1.0}; clls_import( &control, &data, &status, n, o, m, "dense_by_columns", Ao_ne, NULL, NULL, 0, NULL, @@ -163,10 +163,10 @@ int main(void) { printf("%s: CLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/clls/C/cllstf.c b/src/clls/C/cllstf.c index 442c896d3f..3ff80a0c7e 100644 --- a/src/clls/C/cllstf.c +++ b/src/clls/C/cllstf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_clls.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,9 +16,9 @@ int main(void) { struct clls_inform_type inform; // Set problem data - int n = 3; // dimension - int o = 4; // number of observations - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ o = 4; // number of observations + ipc_ m = 2; // number of general constraints real_wp_ sigma = 1.0; // regularization weight real_wp_ b[] = {2.0, 2.0, 3.0, 1.0}; // observations real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound @@ -30,16 +30,16 @@ int main(void) { // Set output storage real_wp_ r[o]; // residual values real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st[3]; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of clls storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize CLLS clls_initialize( &data, &control, &status ); @@ -59,13 +59,13 @@ int main(void) { case 1: // sparse co-ordinate storage strcpy(st, "CO"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {1, 1, 2, 2, 3, 3, 4}; // row indices - int Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {1, 1, 2, 2, 3, 3, 4}; // row indices + ipc_ Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals - int A_ne = 4; // constraint Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ne = 4; // constraint Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0}; // values clls_import( &control, &data, &status, n, o, m, "coordinate", Ao_ne, Ao_row, Ao_col, 0, NULL, @@ -78,15 +78,15 @@ int main(void) { case 2: // sparse by rows strcpy(st, "SR"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices - int Ao_ptr_ne = o + 1; // number of row pointers - int Ao_ptr[] = {1, 3, 5, 7, 8}; // row pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_col[] = {1, 2, 2, 3, 1, 3, 2}; // column indices + ipc_ Ao_ptr_ne = o + 1; // number of row pointers + ipc_ Ao_ptr[] = {1, 3, 5, 7, 8}; // row pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals - int A_ne = 4; // constraint Jacobian elements - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr_ne = m + 1; // number of row pointers - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // constraint Jacobian elements + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr_ne = m + 1; // number of row pointers + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values clls_import( &control, &data, &status, n, o, m, "sparse_by_rows", Ao_ne, NULL, Ao_col, @@ -101,15 +101,15 @@ int main(void) { case 3: // sparse by columns strcpy(st, "SC"); { - int Ao_ne = 7; // objective Jacobian elements - int Ao_row[] = {1, 3, 1, 2, 4, 2, 3}; // row indices - int Ao_ptr_ne = n + 1; // number of column pointers - int Ao_ptr[] = {1, 3, 6, 8}; // column pointers + ipc_ Ao_ne = 7; // objective Jacobian elements + ipc_ Ao_row[] = {1, 3, 1, 2, 4, 2, 3}; // row indices + ipc_ Ao_ptr_ne = n + 1; // number of column pointers + ipc_ Ao_ptr[] = {1, 3, 6, 8}; // column pointers real_wp_ Ao_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // vals - int A_ne = 4; // constraint Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_ptr_ne = n + 1; // number of column pointers - int A_ptr[] = {1, 2, 4, 5}; // column pointers + ipc_ A_ne = 4; // constraint Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_ptr_ne = n + 1; // number of column pointers + ipc_ A_ptr[] = {1, 2, 4, 5}; // column pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values clls_import( &control, &data, &status, n, o, m, "sparse_by_columns", Ao_ne, Ao_row, NULL, @@ -124,10 +124,10 @@ int main(void) { case 4: // dense by rows strcpy(st, "DR"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0}; - int A_ne = 6; // constraint Jacobian elements + ipc_ A_ne = 6; // constraint Jacobian elements real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; clls_import( &control, &data, &status, n, o, m, "dense", Ao_ne, NULL, NULL, 0, NULL, @@ -140,10 +140,10 @@ int main(void) { case 5: // dense by cols strcpy(st, "DC"); { - int Ao_ne = 12; // objective Jacobian elements + ipc_ Ao_ne = 12; // objective Jacobian elements real_wp_ Ao_dense[] = {1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0}; - int A_ne = 6; // constraint Jacobian elements + ipc_ A_ne = 6; // constraint Jacobian elements real_wp_ A_dense[] = {2.0, 0.0, 1.0, 1.0, 0.0, 1.0}; clls_import( &control, &data, &status, n, o, m, "dense_by_columns", Ao_ne, NULL, NULL, 0, NULL, @@ -163,10 +163,10 @@ int main(void) { printf("%s: CLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/cqp/C/cqpt.c b/src/cqp/C/cqpt.c index 04f3dfc74d..45ef4d9028 100644 --- a/src/cqp/C/cqpt.c +++ b/src/cqp/C/cqpt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_cqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct cqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,16 +36,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize CQP cqp_initialize( &data, &control, &status ); @@ -80,8 +80,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; cqp_import( &control, &data, &status, n, m, @@ -141,10 +141,10 @@ int main(void) { printf("%c: CQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -152,7 +152,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize CQP cqp_initialize( &data, &control, &status ); @@ -191,10 +191,10 @@ int main(void) { printf("%c: CQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/cqp/C/cqptf.c b/src/cqp/C/cqptf.c index 9d5a3d67ff..d6e7727aaa 100644 --- a/src/cqp/C/cqptf.c +++ b/src/cqp/C/cqptf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_cqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct cqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,16 +36,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize CQP cqp_initialize( &data, &control, &status ); @@ -80,8 +80,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; cqp_import( &control, &data, &status, n, m, @@ -141,10 +141,10 @@ int main(void) { printf("%c: CQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -152,7 +152,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize CQP cqp_initialize( &data, &control, &status ); @@ -191,10 +191,10 @@ int main(void) { printf("%c: CQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/cro/C/crot.c b/src/cro/C/crot.c index 5c940568ee..b5456327df 100644 --- a/src/cro/C/crot.c +++ b/src/cro/C/crot.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_cro.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,28 +16,28 @@ int main(void) { // Set problem dimensions - int n = 11; // dimension - int m = 3; // number of general constraints - int m_equal = 1; // number of equality constraints + ipc_ n = 11; // dimension + ipc_ m = 3; // number of general constraints + ipc_ m_equal = 1; // number of equality constraints // describe the objective function - int H_ne = 21; + ipc_ H_ne = 21; real_wp_ H_val[] = {1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5, 1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5,1.0}; - int H_col[] = {0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10}; - int H_ptr[] = {0,1,3,5,7,9,11,13,15,17,19,21}; + ipc_ H_col[] = {0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10}; + ipc_ H_ptr[] = {0,1,3,5,7,9,11,13,15,17,19,21}; real_wp_ g[] = {0.5,-0.5,-1.0,-1.0,-1.0, -1.0,-1.0,-1.0,-1.0,-1.0,-0.5}; // describe constraints - int A_ne = 30; + ipc_ A_ne = 30; real_wp_ A_val[] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0}; - int A_col[] = {0,1,2,3,4,5,6,7,8,9,10,2,3,4,5,6,7,8,9,10, + ipc_ A_col[] = {0,1,2,3,4,5,6,7,8,9,10,2,3,4,5,6,7,8,9,10, 1,2,3,4,5,6,7,8,9,10}; - int A_ptr[] = {0,11,20,30}; + ipc_ A_ptr[] = {0,11,20,30}; real_wp_ c_l[] = {10.0,9.0,-INFINITY}; real_wp_ c_u[] = {10.0,INFINITY,10.0}; real_wp_ x_l[] = {0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0}; @@ -50,12 +50,12 @@ int main(void) { real_wp_ y[] = { -1.0,1.5,-2.0}; real_wp_ z[] = {2.0,4.0,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5}; // provide interior-point constraint and variable status - int c_stat[] = {-1,-1,1}; - int x_stat[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; + ipc_ c_stat[] = {-1,-1,1}; + ipc_ x_stat[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; // Set output storage - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); diff --git a/src/cro/C/crotf.c b/src/cro/C/crotf.c index 5915505d8a..5fdfd4b6ec 100644 --- a/src/cro/C/crotf.c +++ b/src/cro/C/crotf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_cro.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,28 +15,28 @@ int main(void) { struct cro_inform_type inform; // Set problem dimensions - int n = 11; // dimension - int m = 3; // number of general constraints - int m_equal = 1; // number of equality constraints + ipc_ n = 11; // dimension + ipc_ m = 3; // number of general constraints + ipc_ m_equal = 1; // number of equality constraints // describe the objective function - int H_ne = 21; + ipc_ H_ne = 21; real_wp_ H_val[] = {1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5, 1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5,1.0,0.5,1.0}; - int H_col[] = {1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11}; - int H_ptr[] = {1,2,4,6,8,10,12,14,16,18,20,22}; + ipc_ H_col[] = {1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11}; + ipc_ H_ptr[] = {1,2,4,6,8,10,12,14,16,18,20,22}; real_wp_ g[] = {0.5,-0.5,-1.0,-1.0,-1.0, -1.0,-1.0,-1.0,-1.0,-1.0,-0.5}; // describe constraints - int A_ne = 30; + ipc_ A_ne = 30; real_wp_ A_val[] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0, 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0}; - int A_col[] = {1,2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11, + ipc_ A_col[] = {1,2,3,4,5,6,7,8,9,10,11,3,4,5,6,7,8,9,10,11, 2,3,4,5,6,7,8,9,10,11 }; - int A_ptr[] = {1,12,21,31}; + ipc_ A_ptr[] = {1,12,21,31}; real_wp_ c_l[] = {10.0,9.0,-INFINITY}; real_wp_ c_u[] = {10.0,INFINITY,10.0}; real_wp_ x_l[] = {0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0}; @@ -49,12 +49,12 @@ int main(void) { real_wp_ y[] = { -1.0,1.5,-2.0}; real_wp_ z[] = {2.0,4.0,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5}; // provide interior-point constraint and variable status - int c_stat[] = {-1,-1,1}; - int x_stat[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; + ipc_ c_stat[] = {-1,-1,1}; + ipc_ x_stat[] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}; // Set output storage - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); diff --git a/src/dgo/C/dgos.c b/src/dgo/C/dgos.c index d0d9ec6b0e..c279030669 100644 --- a/src/dgo/C/dgos.c +++ b/src/dgo/C/dgos.c @@ -12,13 +12,13 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -26,7 +26,7 @@ int main(void) { struct dgo_inform_type inform; // Initialize DGO - int status; + ipc_ status; dgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -40,14 +40,14 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1,1,1}; // start from one real_wp_ x_l[] = {-10.0,-10.0,-10.0}; real_wp_ x_u[] = {1.0,1.0,1.0}; char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 2, 1, 2, 2}; // Hessian H - int H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 2, 1, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle // Set storage real_wp_ g[n]; // gradient @@ -71,11 +71,11 @@ int main(void) { } printf("TR iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -92,7 +92,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; real_wp_ freq = 10.0; @@ -104,7 +104,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; real_wp_ freq = 10.0; @@ -117,7 +117,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian of the objective -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata){ real_wp_ freq = 10.0; real_wp_ mag = 1000.0; @@ -130,7 +130,7 @@ int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata){ real_wp_ freq = 10.0; real_wp_ mag = 1000.0; diff --git a/src/dgo/C/dgos2.c b/src/dgo/C/dgos2.c index 0c4c0e0afa..5b644c8e00 100644 --- a/src/dgo/C/dgos2.c +++ b/src/dgo/C/dgos2.c @@ -12,15 +12,15 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -28,7 +28,7 @@ int main(void) { struct dgo_inform_type inform; // Initialize DGO - int status; + ipc_ status; dgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -42,8 +42,8 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1,1,1}; // start from one real_wp_ x_l[] = {-10.0,-10.0,-10.0}; real_wp_ x_u[] = {1.0,1.0,1.0}; @@ -71,11 +71,11 @@ int main(void) { } printf("TR iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -92,7 +92,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; real_wp_ freq = 10.0; @@ -104,7 +104,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; real_wp_ freq = 10.0; @@ -117,7 +117,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian-vector product -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata){ real_wp_ freq = 10.0; real_wp_ mag = 1000.0; @@ -128,15 +128,15 @@ int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod(int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod(ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata){ real_wp_ freq = 10.0; real_wp_ mag = 1000.0; real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] + 2.0 * v[0] - mag*freq*freq*cos(freq*x[0]) * v[0]; @@ -161,7 +161,7 @@ int shessprod(int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/dgo/C/dgos3.c b/src/dgo/C/dgos3.c index a2be2b3295..586ba9a059 100644 --- a/src/dgo/C/dgos3.c +++ b/src/dgo/C/dgos3.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_dgo.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct dgo_inform_type inform; // Initialize DGO - int status; + ipc_ status; dgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -23,17 +23,17 @@ int main(void) { // control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ x_l[] = {-10.0,-10.0,-10.0}; real_wp_ x_u[] = {1.0,1.0,1.0}; char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 2, 1, 2, 2}; // Hessian H - int H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 2, 1, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle // Reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; @@ -131,11 +131,11 @@ int main(void) { // Print solution details printf("iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/dgo/C/dgos4.c b/src/dgo/C/dgos4.c index e5a4633f88..c31d17b756 100644 --- a/src/dgo/C/dgos4.c +++ b/src/dgo/C/dgos4.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_dgo.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct dgo_inform_type inform; // Initialize DGO - int status; + ipc_ status; dgo_initialize( &data, &control, &status ); // Set user-defined control options @@ -23,19 +23,19 @@ int main(void) { // control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ x_l[] = {-10.0,-10.0,-10.0}; real_wp_ x_u[] = {1.0,1.0,1.0}; char H_type[] = "absent"; // specify Hessian-vector producrs // Reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ freq = 10.0; real_wp_ mag = 1000.0; @@ -79,8 +79,8 @@ int main(void) { }else if(status == 7){ // obtain sparse Hessian-vector product real_wp_ tmp[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: tmp[0] = tmp[0] + 2.0 * v[0] @@ -106,7 +106,7 @@ int main(void) { } } nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = tmp[j]; nnz_u = nnz_u + 1; @@ -167,11 +167,11 @@ int main(void) { } printf("TR iter: %d \n", inform.trb_inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/dgo/C/dgot.c b/src/dgo/C/dgot.c index b6201c78ab..7f1b15a96d 100644 --- a/src/dgo/C/dgot.c +++ b/src/dgo/C/dgot.c @@ -15,26 +15,26 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int prec(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int fun_diag(int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad_diag(int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess_diag(int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec(ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); +ipc_ fun_diag(ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad_diag(ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess_diag(ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -48,24 +48,24 @@ int main(void) { userdata.mag = 1000; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x_l[] = {-10,-10,-10}; real_wp_ x_u[] = {0.5,0.5,0.5}; - int H_row[] = {0, 1, 2, 2, 2}; // Hessian H - int H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle - int H_ptr[] = {0, 1, 2, 5}; // row pointers + ipc_ H_row[] = {0, 1, 2, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 5}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize DGO dgo_initialize( &data, &control, &status ); @@ -131,10 +131,10 @@ int main(void) { printf("%c: DGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -144,13 +144,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize DGO dgo_initialize( &data, &control, &status ); @@ -394,10 +394,10 @@ int main(void) { printf("%c: DGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -407,7 +407,7 @@ int main(void) { } // Objective function -int fun( int n, +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -422,7 +422,7 @@ int fun( int n, } // Gradient of the objective -int grad( int n, +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -438,8 +438,8 @@ int grad( int n, } // Hessian of the objective -int hess( int n, - int ne, +ipc_ hess( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -456,8 +456,8 @@ int hess( int n, } // Dense Hessian -int hess_dense( int n, - int ne, +ipc_ hess_dense( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -475,7 +475,7 @@ int hess_dense( int n, } // Hessian-vector product -int hessprod( int n, +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -493,13 +493,13 @@ int hessprod( int n, } // Sparse Hessian-vector product -int shessprod( int n, +ipc_ shessprod( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -509,8 +509,8 @@ int shessprod( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] + 2.0 * v[0] @@ -536,7 +536,7 @@ int shessprod( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; @@ -547,7 +547,7 @@ int shessprod( int n, } // Apply preconditioner -int prec( int n, +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -559,7 +559,7 @@ int prec( int n, } // Objective function -int fun_diag( int n, +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -574,7 +574,7 @@ int fun_diag( int n, } // Gradient of the objective -int grad_diag( int n, +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -590,8 +590,8 @@ int grad_diag( int n, } // Hessian of the objective -int hess_diag( int n, - int ne, +ipc_ hess_diag( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -606,7 +606,7 @@ int hess_diag( int n, } // Hessian-vector product -int hessprod_diag( int n, +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -623,13 +623,13 @@ int hessprod_diag( int n, } // Sparse Hessian-vector product -int shessprod_diag( int n, +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -639,8 +639,8 @@ int shessprod_diag( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] - mag * freq * freq * cos(freq*x[0]) * v[0]; @@ -657,7 +657,7 @@ int shessprod_diag( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/dgo/C/dgotf.c b/src/dgo/C/dgotf.c index da0989c286..61b0ce96ab 100644 --- a/src/dgo/C/dgotf.c +++ b/src/dgo/C/dgotf.c @@ -15,30 +15,30 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, - const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, + const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -52,24 +52,24 @@ int main(void) { userdata.mag = 1000; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x_l[] = {-10,-10,-10}; real_wp_ x_u[] = {0.5,0.5,0.5}; - int H_row[] = {1, 2, 3, 3, 3}; // Hessian H - int H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle - int H_ptr[] = {1, 2, 3, 6}; // row pointers + ipc_ H_row[] = {1, 2, 3, 3, 3}; // Hessian H + ipc_ H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 6}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize DGO dgo_initialize( &data, &control, &status ); @@ -135,10 +135,10 @@ int main(void) { printf("%c: DGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -148,13 +148,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for(int d=1; d <= 5; d++){ + for(ipc_ d=1; d <= 5; d++){ // Initialize DGO dgo_initialize( &data, &control, &status ); @@ -398,10 +398,10 @@ int main(void) { printf("%c: DGO_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for(int i = 0; i < n; i++) printf("%f ", x[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for(int i = 0; i < n; i++) printf("%f ", g[i]); + //for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -411,7 +411,7 @@ int main(void) { } // Objective function -int fun( int n, +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -426,7 +426,7 @@ int fun( int n, } // Gradient of the objective -int grad( int n, +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -442,8 +442,8 @@ int grad( int n, } // Hessian of the objective -int hess( int n, - int ne, +ipc_ hess( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -460,8 +460,8 @@ int hess( int n, } // Dense Hessian -int hess_dense( int n, - int ne, +ipc_ hess_dense( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -479,7 +479,7 @@ int hess_dense( int n, } // Hessian-vector product -int hessprod( int n, +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -497,13 +497,13 @@ int hessprod( int n, } // Sparse Hessian-vector product -int shessprod( int n, +ipc_ shessprod( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -513,8 +513,8 @@ int shessprod( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 1: p[0] = p[0] + 2.0 * v[0] @@ -540,7 +540,7 @@ int shessprod( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; @@ -551,7 +551,7 @@ int shessprod( int n, } // Apply preconditioner -int prec( int n, +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -563,7 +563,7 @@ int prec( int n, } // Objective function -int fun_diag( int n, +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ @@ -578,7 +578,7 @@ int fun_diag( int n, } // Gradient of the objective -int grad_diag( int n, +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ @@ -594,8 +594,8 @@ int grad_diag( int n, } // Hessian of the objective -int hess_diag( int n, - int ne, +ipc_ hess_diag( ipc_ n, + ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ @@ -610,7 +610,7 @@ int hess_diag( int n, } // Hessian-vector product -int hessprod_diag( int n, +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], @@ -627,13 +627,13 @@ int hessprod_diag( int n, } // Sparse Hessian-vector product -int shessprod_diag( int n, +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], - int nnz_v, - const int index_nz_v[], + ipc_ nnz_v, + const ipc_ index_nz_v[], const real_wp_ v[], int *nnz_u, - int index_nz_u[], + ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ @@ -643,8 +643,8 @@ int shessprod_diag( int n, real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 1: p[0] = p[0] - mag * freq * freq * cos(freq*x[0]) * v[0]; @@ -661,7 +661,7 @@ int shessprod_diag( int n, } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/dps/C/dpst.c b/src/dps/C/dpst.c index 958878d1a0..9e74be80bb 100644 --- a/src/dps/C/dpst.c +++ b/src/dps/C/dpst.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_dps.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,13 +16,13 @@ int main(void) { struct dps_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 1; // dimension of A - int H_ne = 4; // number of elements of H - int H_dense_ne = 6; // number of elements of H - int H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle - int H_col[] = {0, 1, 2, 0}; - int H_ptr[] = {0, 1, 2, 4}; + ipc_ n = 3; // dimension of H + ipc_ m = 1; // dimension of A + ipc_ H_ne = 4; // number of elements of H + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2, 0}; + ipc_ H_ptr[] = {0, 1, 2, 4}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 4.0}; real_wp_ H_dense[] = {1.0, 0.0, 2.0, 4.0, 0.0, 3.0}; real_wp_ f = 0.96; @@ -31,14 +31,14 @@ int main(void) { real_wp_ c[] = {0.0, 2.0, 0.0}; char st; - int status; + ipc_ status; real_wp_ x[n]; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int storage_type=1; storage_type <= 3; storage_type++){ + for( ipc_ storage_type=1; storage_type <= 3; storage_type++){ // Initialize DPS dps_initialize( &data, &control, &status ); @@ -102,7 +102,7 @@ int main(void) { printf("format %c: DPS_resolve_problem exit status = %1i, f = %.2f\n", st, inform.status, inform.obj ); //printf("x: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace dps_terminate( &data, &control, &inform ); diff --git a/src/dps/C/dpstf.c b/src/dps/C/dpstf.c index dd203104e6..d5907f89fc 100644 --- a/src/dps/C/dpstf.c +++ b/src/dps/C/dpstf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_dps.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,13 +16,13 @@ int main(void) { struct dps_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 1; // dimension of A - int H_ne = 4; // number of elements of H - int H_dense_ne = 6; // number of elements of H - int H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle - int H_col[] = {1, 2, 3, 1}; - int H_ptr[] = {1, 2, 3, 5}; + ipc_ n = 3; // dimension of H + ipc_ m = 1; // dimension of A + ipc_ H_ne = 4; // number of elements of H + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3, 1}; + ipc_ H_ptr[] = {1, 2, 3, 5}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 4.0}; real_wp_ H_dense[] = {1.0, 0.0, 2.0, 4.0, 0.0, 3.0}; real_wp_ f = 0.96; @@ -31,14 +31,14 @@ int main(void) { real_wp_ c[] = {0.0, 2.0, 0.0}; char st; - int status; + ipc_ status; real_wp_ x[n]; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int storage_type=1; storage_type <= 3; storage_type++){ + for( ipc_ storage_type=1; storage_type <= 3; storage_type++){ // Initialize DPS dps_initialize( &data, &control, &status ); @@ -102,7 +102,7 @@ int main(void) { printf("format %c: DPS_resolve_problem exit status = %1i, f = %.2f\n", st, inform.status, inform.obj ); //printf("x: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace dps_terminate( &data, &control, &inform ); diff --git a/src/dqp/C/dqpt.c b/src/dqp/C/dqpt.c index 460d91e374..35c90a351d 100644 --- a/src/dqp/C/dqpt.c +++ b/src/dqp/C/dqpt.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_dqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,24 +16,24 @@ int main(void) { struct dqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values -// int H_ne = 4; // Hesssian elements -// int H_row[] = {0, 1, 2, 2 }; // row indices, NB lower triangle -// int H_col[] = {0, 1, 1, 2}; // column indices, NB lower triangle -// int H_ptr[] = {0, 1, 3, 4}; // row pointers +// ipc_ H_ne = 4; // Hesssian elements +// ipc_ H_row[] = {0, 1, 2, 2 }; // row indices, NB lower triangle +// ipc_ H_col[] = {0, 1, 1, 2}; // column indices, NB lower triangle +// ipc_ H_ptr[] = {0, 1, 3, 4}; // row pointers // real_wp_ H_val[] = {1.0, 2.0, 1.0, 3.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -42,16 +42,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 6; d++){ + for( ipc_ d=1; d <= 6; d++){ // Initialize DQP dqp_initialize( &data, &control, &status ); @@ -92,8 +92,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; dqp_import( &control, &data, &status, n, m, @@ -141,10 +141,10 @@ int main(void) { printf("%c: DQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -154,8 +154,8 @@ int main(void) { printf("\n separate test of sldqp\n\n"); // test shifted least-distance interface -// for( int d=1; d <= 0; d++){ - for( int d=1; d <= 1; d++){ +// for( ipc_ d=1; d <= 0; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize DQP dqp_initialize( &data, &control, &status ); @@ -200,10 +200,10 @@ int main(void) { printf("%c: DQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/dqp/C/dqpt2.c b/src/dqp/C/dqpt2.c index dce89d7750..e3b1c66d9e 100644 --- a/src/dqp/C/dqpt2.c +++ b/src/dqp/C/dqpt2.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_dqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,17 +16,17 @@ int main(void) { struct dqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 4; // Hesssian elements - int H_row[] = {0, 1, 2, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 1, 2}; // column indices, NB lower triangle + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 4; // Hesssian elements + ipc_ H_row[] = {0, 1, 2, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 1, 2}; // column indices, NB lower triangle real_wp_ H_val[] = {1.0, 2.0, 1.0, 3.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -35,10 +35,10 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); @@ -112,10 +112,10 @@ int main(void) { printf("%c: DQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/dqp/C/dqptf.c b/src/dqp/C/dqptf.c index 34cfc930f3..2834920ec1 100644 --- a/src/dqp/C/dqptf.c +++ b/src/dqp/C/dqptf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_dqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct dqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,16 +36,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 6; d++){ + for( ipc_ d=1; d <= 6; d++){ // Initialize DQP dqp_initialize( &data, &control, &status ); @@ -80,8 +80,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; dqp_import( &control, &data, &status, n, m, @@ -129,10 +129,10 @@ int main(void) { printf("%c: DQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -140,7 +140,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize DQP dqp_initialize( &data, &control, &status ); @@ -179,10 +179,10 @@ int main(void) { printf("%c: DQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/eqp/C/eqpt.c b/src/eqp/C/eqpt.c index ecb59999f0..1e53e07ea8 100644 --- a/src/eqp/C/eqpt.c +++ b/src/eqp/C/eqpt.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_eqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,33 +16,33 @@ int main(void) { struct eqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c[] = {3.0, 0.0}; // rhs of the constraints // Set output storage - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 6; d++){ + for( ipc_ d=1; d <= 6; d++){ // Initialize EQP eqp_initialize( &data, &control, &status ); @@ -78,8 +78,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; eqp_import( &control, &data, &status, n, m, @@ -134,10 +134,10 @@ int main(void) { printf("%c: EQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -145,7 +145,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize EQP eqp_initialize( &data, &control, &status ); @@ -186,10 +186,10 @@ int main(void) { printf("%c: EQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/eqp/C/eqptf.c b/src/eqp/C/eqptf.c index 2a77803b32..832395af53 100644 --- a/src/eqp/C/eqptf.c +++ b/src/eqp/C/eqptf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_eqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,33 +16,33 @@ int main(void) { struct eqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c[] = {3.0, 0.0}; // rhs of the constraints // Set output storage - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 6; d++){ + for( ipc_ d=1; d <= 6; d++){ // Initialize EQP eqp_initialize( &data, &control, &status ); @@ -79,8 +79,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; eqp_import( &control, &data, &status, n, m, @@ -132,10 +132,10 @@ int main(void) { printf("%c: EQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -143,7 +143,7 @@ int main(void) { } // test shifted least-distance interface - for( int d=1; d <= 1; d++){ + for( ipc_ d=1; d <= 1; d++){ // Initialize EQP eqp_initialize( &data, &control, &status ); @@ -185,10 +185,10 @@ int main(void) { printf("%c: EQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/fdc/C/fdct.c b/src/fdc/C/fdct.c index 37dcf24c7d..0220f45576 100644 --- a/src/fdc/C/fdct.c +++ b/src/fdc/C/fdct.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_fdc.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,18 +16,18 @@ int main(void) { struct fdc_inform_type inform; // Set problem data - int m = 3; // number of rows - int n = 4; // number of columns - int A_ne = 10; // number of nonzeros - int A_col[] = {0, 1, 2, 3, 0, 1, 2, 3, 1, 3}; // column indices - int A_ptr[] = {0, 4, 8, 10}; // row pointers + ipc_ m = 3; // number of rows + ipc_ n = 4; // number of columns + ipc_ A_ne = 10; // number of nonzeros + ipc_ A_col[] = {0, 1, 2, 3, 0, 1, 2, 3, 1, 3}; // column indices + ipc_ A_ptr[] = {0, 4, 8, 10}; // row pointers real_wp_ A_val[] = {1.0, 2.0, 3.0, 4.0, 2.0, -4.0, 6.0, -8.0, 5.0, 10.0}; real_wp_ b[] = {5.0, 10.0, 0.0}; // Set output storage - int depen[m]; // dependencies, if any - int n_depen; - int status; + ipc_ depen[m]; // dependencies, if any + ipc_ n_depen; + ipc_ status; printf(" C sparse matrix indexing\n"); @@ -50,7 +50,7 @@ int main(void) { status); }else{ printf("FDC_find_dependent - dependent rows(s):" ); - for( int i = 0; i < n_depen; i++) printf(" %i", depen[i]); + for( ipc_ i = 0; i < n_depen; i++) printf(" %i", depen[i]); printf(", status = %i\n", status); } }else{ diff --git a/src/fdc/C/fdctf.c b/src/fdc/C/fdctf.c index 64803788b8..ca5e331c91 100644 --- a/src/fdc/C/fdctf.c +++ b/src/fdc/C/fdctf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_fdc.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,18 +15,18 @@ int main(void) { struct fdc_inform_type inform; // Set problem data - int m = 3; // number of rows - int n = 4; // number of columns - int A_ne = 10; // number of nonzeros - int A_col[] = {1, 2, 3, 4, 1, 2, 3, 4, 2, 4}; // column indices - int A_ptr[] = {1, 5, 9, 11}; // row pointers + ipc_ m = 3; // number of rows + ipc_ n = 4; // number of columns + ipc_ A_ne = 10; // number of nonzeros + ipc_ A_col[] = {1, 2, 3, 4, 1, 2, 3, 4, 2, 4}; // column indices + ipc_ A_ptr[] = {1, 5, 9, 11}; // row pointers real_wp_ A_val[] = {1.0, 2.0, 3.0, 4.0, 2.0, -4.0, 6.0, -8.0, 5.0, 10.0}; real_wp_ b[] = {5.0, 10.0, 0.0}; // Set output storage - int depen[m]; // dependencies, if any - int n_depen; - int status; + ipc_ depen[m]; // dependencies, if any + ipc_ n_depen; + ipc_ status; printf(" Fortran sparse matrix indexing\n"); @@ -47,7 +47,7 @@ int main(void) { status); }else{ printf("FDC_find_dependent - dependent rows(s):" ); - for( int i = 0; i < n_depen; i++) printf(" %i", depen[i]); + for( ipc_ i = 0; i < n_depen; i++) printf(" %i", depen[i]); printf(", status = %i\n", status); } }else{ diff --git a/src/glrt/C/glrtt.c b/src/glrt/C/glrtt.c index 3e696a872f..4d91fb0479 100644 --- a/src/glrt/C/glrtt.c +++ b/src/glrt/C/glrtt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_glrt.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,9 +15,9 @@ int main(void) { struct glrt_inform_type inform; // Set problem data - int n = 100; // dimension + ipc_ n = 100; // dimension - int status; + ipc_ status; real_wp_ weight; real_wp_ power = 3.0; real_wp_ x[n]; @@ -29,7 +29,7 @@ int main(void) { glrt_initialize( &data, &control, &status ); // use a unit M ? - for( int unit_m=0; unit_m <= 1; unit_m++){ + for( ipc_ unit_m=0; unit_m <= 1; unit_m++){ if ( unit_m == 0 ){ control.unitm = false; } else { @@ -37,7 +37,7 @@ int main(void) { } glrt_import_control( &control, &data, &status ); // resolve with a larger weight ? - for( int new_weight=0; new_weight <= 1; new_weight++){ + for( ipc_ new_weight=0; new_weight <= 1; new_weight++){ if ( new_weight == 0 ){ weight = 1.0; status = 1; @@ -45,7 +45,7 @@ int main(void) { weight = 10.0; status = 6; } - for( int i = 0; i < n; i++) r[i] = 1.0; + for( ipc_ i = 0; i < n; i++) r[i] = 1.0; // iteration loop to find the minimizer while(true){ // reverse-communication loop @@ -55,16 +55,16 @@ int main(void) { } else if ( status < 0 ) { // error exit break; } else if ( status == 2 ) { // form the preconditioned vector - for( int i = 0; i < n; i++) vector[i] = vector[i] / 2.0; + for( ipc_ i = 0; i < n; i++) vector[i] = vector[i] / 2.0; } else if ( status == 3 ) { // form the Hessian-vector product h_vector[0] = 2.0 * vector[0] + vector[1]; - for( int i = 1; i < n-1; i++){ + for( ipc_ i = 1; i < n-1; i++){ h_vector[i] = vector[i-1] + 2.0 * vector[i] + vector[i+1]; } h_vector[n-1] = vector[n-2] + 2.0 * vector[n-1]; - for( int i = 0; i < n; i++) vector[i] = h_vector[i]; + for( ipc_ i = 0; i < n; i++) vector[i] = h_vector[i]; } else if ( status == 4 ) { // restart - for( int i = 0; i < n; i++) r[i] = 1.0; + for( ipc_ i = 0; i < n; i++) r[i] = 1.0; }else{ printf(" the value %1i of status should not occur\n", status); diff --git a/src/gltr/C/gltrt.c b/src/gltr/C/gltrt.c index 65a9f8574f..44909d030b 100644 --- a/src/gltr/C/gltrt.c +++ b/src/gltr/C/gltrt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_gltr.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,9 +15,9 @@ int main(void) { struct gltr_inform_type inform; // Set problem data - int n = 100; // dimension + ipc_ n = 100; // dimension - int status; + ipc_ status; real_wp_ radius; real_wp_ x[n]; real_wp_ r[n]; @@ -28,7 +28,7 @@ int main(void) { gltr_initialize( &data, &control, &status ); // use a unit M ? - for( int unit_m=0; unit_m <= 1; unit_m++){ + for( ipc_ unit_m=0; unit_m <= 1; unit_m++){ if ( unit_m == 0 ){ control.unitm = false; } else { @@ -37,7 +37,7 @@ int main(void) { gltr_import_control( &control, &data, &status ); // resolve with a smaller radius ? - for( int new_radius=0; new_radius <= 1; new_radius++){ + for( ipc_ new_radius=0; new_radius <= 1; new_radius++){ if ( new_radius == 0 ){ radius = 1.0; status = 1; @@ -45,7 +45,7 @@ int main(void) { radius = 0.1; status = 4; } - for( int i = 0; i < n; i++) r[i] = 1.0; + for( ipc_ i = 0; i < n; i++) r[i] = 1.0; // iteration loop to find the minimizer while(true){ // reverse-communication loop @@ -55,16 +55,16 @@ int main(void) { } else if ( status < 0 ) { // error exit break; } else if ( status == 2 ) { // form the preconditioned vector - for( int i = 0; i < n; i++) vector[i] = vector[i] / 2.0; + for( ipc_ i = 0; i < n; i++) vector[i] = vector[i] / 2.0; } else if ( status == 3 ) { // form the Hessian-vector product h_vector[0] = 2.0 * vector[0] + vector[1]; - for( int i = 1; i < n-1; i++){ + for( ipc_ i = 1; i < n-1; i++){ h_vector[i] = vector[i-1] + 2.0 * vector[i] + vector[i+1]; } h_vector[n-1] = vector[n-2] + 2.0 * vector[n-1]; - for( int i = 0; i < n; i++) vector[i] = h_vector[i]; + for( ipc_ i = 0; i < n; i++) vector[i] = h_vector[i]; } else if ( status == 5 ) { // restart - for( int i = 0; i < n; i++) r[i] = 1.0; + for( ipc_ i = 0; i < n; i++) r[i] = 1.0; }else{ printf(" the value %1i of status should not occur\n", status); diff --git a/src/l2rt/C/l2rtt.c b/src/l2rt/C/l2rtt.c index ccbdded144..3ab461d08d 100644 --- a/src/l2rt/C/l2rtt.c +++ b/src/l2rt/C/l2rtt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_l2rt.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,10 +15,10 @@ int main(void) { struct l2rt_inform_type inform; // Set problem data - int n = 50; // dimensions - int m = 2 * n; + ipc_ n = 50; // dimensions + ipc_ m = 2 * n; - int status; + ipc_ status; real_wp_ power = 3.0; real_wp_ weight = 1.0; real_wp_ shift = 1.0; @@ -33,7 +33,7 @@ int main(void) { control.print_level = 0; l2rt_import_control( &control, &data, &status ); - for( int i = 0; i < m; i++) u[i] = 1.0; // b = 1 + for( ipc_ i = 0; i < m; i++) u[i] = 1.0; // b = 1 // iteration loop to find the minimizer with A^T = (I:diag(1:n)) while(true){ // reverse-communication loop @@ -43,14 +43,14 @@ int main(void) { } else if ( status < 0 ) { // error exit break; } else if ( status == 2 ) { // form u <- u + A * v - for( int i = 0; i < n; i++) { + for( ipc_ i = 0; i < n; i++) { u[i] = u[i] + v[i]; u[n+i] = u[n+i] + (i+1)*v[i]; } } else if ( status == 3 ) { // form v <- v + A^T * u - for( int i = 0; i < n; i++) v[i] = v[i] + u[i] + (i+1) * u[n+i]; + for( ipc_ i = 0; i < n; i++) v[i] = v[i] + u[i] + (i+1) * u[n+i]; } else if ( status == 4 ) { // restart - for( int i = 0; i < m; i++) u[i] = 1.0; + for( ipc_ i = 0; i < m; i++) u[i] = 1.0; }else{ printf(" the value %1i of status should not occur\n", status); diff --git a/src/lhs/C/lhss.c b/src/lhs/C/lhss.c index 278d2b5855..2fe00ba431 100644 --- a/src/lhs/C/lhss.c +++ b/src/lhs/C/lhss.c @@ -5,7 +5,7 @@ #include #include "galahad_lhs.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,10 +16,10 @@ int main(void) { lhs_initialize(&data, &control, &inform); // Parameters - int n_dimen = 7; // dimension - int n_points = 2; // points required - int X[n_dimen][n_points]; // points - int seed; + ipc_ n_dimen = 7; // dimension + ipc_ n_points = 2; // points required + ipc_ X[n_dimen][n_points]; // points + ipc_ seed; // Set a random seed lhs_get_seed(&seed); @@ -28,9 +28,9 @@ int main(void) { lhs_ihs(n_dimen, n_points, &seed, (int**)X, &control, &inform, &data); if(inform.status == 0){ // successful return printf("LHS successful\n"); - for(int j = 0; j < n_points; j++){ + for(ipc_ j = 0; j < n_points; j++){ printf("Point %d = ", j); - for(int i = 0; i < n_dimen; i++){ + for(ipc_ i = 0; i < n_dimen; i++){ printf("%d ", X[i][j]); } printf("\n"); diff --git a/src/lhs/C/lhst.c b/src/lhs/C/lhst.c index 9f94e341d9..9f03726263 100644 --- a/src/lhs/C/lhst.c +++ b/src/lhs/C/lhst.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lhs.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -18,10 +18,10 @@ int main(void) { lhs_initialize(&data, &control, &inform); // Parameters - int n_dimen = 7; // dimension - int n_points = 2; // points required - int X[n_dimen][n_points]; // points - int seed; + ipc_ n_dimen = 7; // dimension + ipc_ n_points = 2; // points required + ipc_ X[n_dimen][n_points]; // points + ipc_ seed; // Set a random seed lhs_get_seed(&seed); @@ -30,9 +30,9 @@ int main(void) { lhs_ihs(n_dimen, n_points, &seed, (int**)X, &control, &inform, &data); if(inform.status == 0){ // successful return printf("LHS successful\n"); - for(int j = 0; j < n_points; j++){ + for(ipc_ j = 0; j < n_points; j++){ printf("Point %d = ", j); - for(int i = 0; i < n_dimen; i++){ + for(ipc_ i = 0; i < n_dimen; i++){ printf("%d ", X[i][j]); } printf("\n"); diff --git a/src/llsr/C/llsrt.c b/src/llsr/C/llsrt.c index 8ebd2c989a..9d9414ecce 100644 --- a/src/llsr/C/llsrt.c +++ b/src/llsr/C/llsrt.c @@ -8,23 +8,23 @@ #include "galahad_cfunctions.h" #include "galahad_llsr.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; struct llsr_control_type control; struct llsr_inform_type inform; - int i, l; + ipc_ i, l; // Set problem data // set dimensions - int m = 100; - int n = 2*m+1; + ipc_ m = 100; + ipc_ n = 2*m+1; // A = ( I : Diag(1:n) : e ) - int A_ne = 3*m; - int A_row[A_ne]; - int A_col[A_ne]; - int A_ptr[m+1]; + ipc_ A_ne = 3*m; + ipc_ A_row[A_ne]; + ipc_ A_col[A_ne]; + ipc_ A_ptr[m+1]; real_wp_ A_val[A_ne]; // store A in sparse formats @@ -47,7 +47,7 @@ int main(void) { A_ptr[m] = l; // store A in dense format - int A_dense_ne = m * n; + ipc_ A_dense_ne = m * n; real_wp_ A_dense_val[A_dense_ne]; for( i=0; i < A_dense_ne; i++) A_dense_val[i] = 0.0; l=-1; @@ -59,10 +59,10 @@ int main(void) { } // S = diag(1:n)**2 - int S_ne = n; - int S_row[S_ne]; - int S_col[S_ne]; - int S_ptr[n+1]; + ipc_ S_ne = n; + ipc_ S_row[S_ne]; + ipc_ S_col[S_ne]; + ipc_ S_ptr[n+1]; real_wp_ S_val[S_ne]; // store S in sparse formats @@ -75,7 +75,7 @@ int main(void) { S_ptr[n] = n; // store S in dense format - int S_dense_ne = n*(n+1)/2; + ipc_ S_dense_ne = n*(n+1)/2; real_wp_ S_dense_val[S_dense_ne]; for( i=0; i < S_dense_ne; i++) S_dense_val[i] = 0.0; l=-1; @@ -97,14 +97,14 @@ int main(void) { // Set output storage real_wp_ x[n]; // solution char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of problem storage formats\n\n"); // loop over storage formats - for( int d=1; d<=4; d++){ + for( ipc_ d=1; d<=4; d++){ // Initialize LLSR llsr_initialize( &data, &control, &status ); @@ -117,7 +117,7 @@ int main(void) { control.f_indexing = false; // C sparse matrix indexing // use s or not (1 or 0) - for( int use_s=0; use_s<=1; use_s++){ + for( ipc_ use_s=0; use_s<=1; use_s++){ switch(d){ case 1: // sparse co-ordinate storage st = 'C'; @@ -192,7 +192,7 @@ int main(void) { } } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); // Delete internal workspace diff --git a/src/llsr/C/llsrtf.c b/src/llsr/C/llsrtf.c index 4ae891380b..5b5401f25f 100644 --- a/src/llsr/C/llsrtf.c +++ b/src/llsr/C/llsrtf.c @@ -8,23 +8,23 @@ #include "galahad_cfunctions.h" #include "galahad_llsr.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; struct llsr_control_type control; struct llsr_inform_type inform; - int i, l; + ipc_ i, l; // Set problem data // set dimensions - int m = 100; - int n = 2*m+1; + ipc_ m = 100; + ipc_ n = 2*m+1; // A = ( I : Diag(1:n) : e ) - int A_ne = 3*m; - int A_row[A_ne]; - int A_col[A_ne]; - int A_ptr[m+1]; + ipc_ A_ne = 3*m; + ipc_ A_row[A_ne]; + ipc_ A_col[A_ne]; + ipc_ A_ptr[m+1]; real_wp_ A_val[A_ne]; // store A in sparse formats @@ -47,7 +47,7 @@ int main(void) { A_ptr[m] = l+1; // store A in dense format - int A_dense_ne = m * n; + ipc_ A_dense_ne = m * n; real_wp_ A_dense_val[A_dense_ne]; for( i=0; i < A_dense_ne; i++) A_dense_val[i] = 0.0; l=-1; @@ -59,10 +59,10 @@ int main(void) { } // S = diag(1:n)**2 - int S_ne = n; - int S_row[S_ne]; - int S_col[S_ne]; - int S_ptr[n+1]; + ipc_ S_ne = n; + ipc_ S_row[S_ne]; + ipc_ S_col[S_ne]; + ipc_ S_ptr[n+1]; real_wp_ S_val[S_ne]; // store S in sparse formats @@ -75,7 +75,7 @@ int main(void) { S_ptr[n] = n+1; // store S in dense format - int S_dense_ne = n*(n+1)/2; + ipc_ S_dense_ne = n*(n+1)/2; real_wp_ S_dense_val[S_dense_ne]; for( i=0; i < S_dense_ne; i++) S_dense_val[i] = 0.0; l=-1; @@ -97,14 +97,14 @@ int main(void) { // Set output storage real_wp_ x[n]; // solution char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of problem storage formats\n\n"); // loop over storage formats - for( int d=1; d<=4; d++){ + for( ipc_ d=1; d<=4; d++){ // Initialize LLSR llsr_initialize( &data, &control, &status ); @@ -117,7 +117,7 @@ int main(void) { control.f_indexing = true; // Fortran sparse matrix indexing // use s or not (1 or 0) - for( int use_s=0; use_s<=1; use_s++){ + for( ipc_ use_s=0; use_s<=1; use_s++){ switch(d){ case 1: // sparse co-ordinate storage st = 'C'; @@ -192,7 +192,7 @@ int main(void) { } } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); // Delete internal workspace diff --git a/src/llst/C/llstt.c b/src/llst/C/llstt.c index a744a2da2f..48a22fb914 100644 --- a/src/llst/C/llstt.c +++ b/src/llst/C/llstt.c @@ -8,23 +8,23 @@ #include "galahad_cfunctions.h" #include "galahad_llst.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; struct llst_control_type control; struct llst_inform_type inform; - int i, l; + ipc_ i, l; // Set problem data // set dimensions - int m = 100; - int n = 2*m+1; + ipc_ m = 100; + ipc_ n = 2*m+1; // A = ( I : Diag(1:n) : e ) - int A_ne = 3*m; - int A_row[A_ne]; - int A_col[A_ne]; - int A_ptr[m+1]; + ipc_ A_ne = 3*m; + ipc_ A_row[A_ne]; + ipc_ A_col[A_ne]; + ipc_ A_ptr[m+1]; real_wp_ A_val[A_ne]; // store A in sparse formats @@ -47,7 +47,7 @@ int main(void) { A_ptr[m] = l; // store A in dense format - int A_dense_ne = m * n; + ipc_ A_dense_ne = m * n; real_wp_ A_dense_val[A_dense_ne]; for( i=0; i < A_dense_ne; i++) A_dense_val[i] = 0.0; l=-1; @@ -59,10 +59,10 @@ int main(void) { } // S = diag(1:n)**2 - int S_ne = n; - int S_row[S_ne]; - int S_col[S_ne]; - int S_ptr[n+1]; + ipc_ S_ne = n; + ipc_ S_row[S_ne]; + ipc_ S_col[S_ne]; + ipc_ S_ptr[n+1]; real_wp_ S_val[S_ne]; // store S in sparse formats @@ -75,7 +75,7 @@ int main(void) { S_ptr[n] = n; // store S in dense format - int S_dense_ne = n*(n+1)/2; + ipc_ S_dense_ne = n*(n+1)/2; real_wp_ S_dense_val[S_dense_ne]; for( i=0; i < S_dense_ne; i++) S_dense_val[i] = 0.0; l=-1; @@ -95,14 +95,14 @@ int main(void) { // Set output storage real_wp_ x[n]; // solution char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of problem storage formats\n\n"); // loop over storage formats - for( int d=1; d<=4; d++){ + for( ipc_ d=1; d<=4; d++){ // Initialize LLST llst_initialize( &data, &control, &status ); @@ -115,7 +115,7 @@ int main(void) { control.f_indexing = false; // C sparse matrix indexing // use s or not (1 or 0) - for( int use_s=0; use_s<=1; use_s++){ + for( ipc_ use_s=0; use_s<=1; use_s++){ switch(d){ case 1: // sparse co-ordinate storage st = 'C'; @@ -190,7 +190,7 @@ int main(void) { } } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); // Delete internal workspace diff --git a/src/llst/C/llsttf.c b/src/llst/C/llsttf.c index 457e1a0340..197294411e 100644 --- a/src/llst/C/llsttf.c +++ b/src/llst/C/llsttf.c @@ -8,23 +8,23 @@ #include "galahad_cfunctions.h" #include "galahad_llst.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; struct llst_control_type control; struct llst_inform_type inform; - int i, l; + ipc_ i, l; // Set problem data // set dimensions - int m = 100; - int n = 2*m+1; + ipc_ m = 100; + ipc_ n = 2*m+1; // A = ( I : Diag(1:n) : e ) - int A_ne = 3*m; - int A_row[A_ne]; - int A_col[A_ne]; - int A_ptr[m+1]; + ipc_ A_ne = 3*m; + ipc_ A_row[A_ne]; + ipc_ A_col[A_ne]; + ipc_ A_ptr[m+1]; real_wp_ A_val[A_ne]; // store A in sparse formats @@ -47,7 +47,7 @@ int main(void) { A_ptr[m] = l+1; // store A in dense format - int A_dense_ne = m * n; + ipc_ A_dense_ne = m * n; real_wp_ A_dense_val[A_dense_ne]; for( i=0; i < A_dense_ne; i++) A_dense_val[i] = 0.0; l=-1; @@ -59,10 +59,10 @@ int main(void) { } // S = diag(1:n)**2 - int S_ne = n; - int S_row[S_ne]; - int S_col[S_ne]; - int S_ptr[n+1]; + ipc_ S_ne = n; + ipc_ S_row[S_ne]; + ipc_ S_col[S_ne]; + ipc_ S_ptr[n+1]; real_wp_ S_val[S_ne]; // store S in sparse formats @@ -75,7 +75,7 @@ int main(void) { S_ptr[n] = n+1; // store S in dense format - int S_dense_ne = n*(n+1)/2; + ipc_ S_dense_ne = n*(n+1)/2; real_wp_ S_dense_val[S_dense_ne]; for( i=0; i < S_dense_ne; i++) S_dense_val[i] = 0.0; l=-1; @@ -95,14 +95,14 @@ int main(void) { // Set output storage real_wp_ x[n]; // solution char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of problem storage formats\n\n"); // loop over storage formats - for( int d=1; d<=4; d++){ + for( ipc_ d=1; d<=4; d++){ // Initialize LLST llst_initialize( &data, &control, &status ); @@ -115,7 +115,7 @@ int main(void) { control.f_indexing = true; // Fortran sparse matrix indexing // use s or not (1 or 0) - for( int use_s=0; use_s<=1; use_s++){ + for( ipc_ use_s=0; use_s<=1; use_s++){ switch(d){ case 1: // sparse co-ordinate storage st = 'C'; @@ -190,7 +190,7 @@ int main(void) { } } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lpa/C/lpat.c b/src/lpa/C/lpat.c index 5c13235faf..77a54397ca 100644 --- a/src/lpa/C/lpat.c +++ b/src/lpa/C/lpat.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lpa.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,14 +15,14 @@ int main(void) { struct lpa_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -31,16 +31,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of lp storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize LPA lpa_initialize( &data, &control, &status ); @@ -73,7 +73,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int A_dense_ne = 6; // number of elements of A + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; lpa_import( &control, &data, &status, n, m, "dense", A_ne, NULL, NULL, NULL ); @@ -91,10 +91,10 @@ int main(void) { printf("%c: LPA_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lpa/C/lpatf.c b/src/lpa/C/lpatf.c index 4800a6a432..15c9367940 100644 --- a/src/lpa/C/lpatf.c +++ b/src/lpa/C/lpatf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lpa.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,14 +15,14 @@ int main(void) { struct lpa_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -31,16 +31,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of lp storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize LPA lpa_initialize( &data, &control, &status ); @@ -73,7 +73,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int A_dense_ne = 6; // number of elements of A + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; lpa_import( &control, &data, &status, n, m, "dense", A_ne, NULL, NULL, NULL ); @@ -91,10 +91,10 @@ int main(void) { printf("%c: LPA_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lpb/C/lpbt.c b/src/lpb/C/lpbt.c index f916ea2956..345942c04b 100644 --- a/src/lpb/C/lpbt.c +++ b/src/lpb/C/lpbt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lpb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,14 +15,14 @@ int main(void) { struct lpb_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -31,16 +31,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of lp storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize LPB lpb_initialize( &data, &control, &status ); @@ -73,7 +73,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int A_dense_ne = 6; // number of elements of A + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; lpb_import( &control, &data, &status, n, m, "dense", A_ne, NULL, NULL, NULL ); @@ -91,10 +91,10 @@ int main(void) { printf("%c: LPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lpb/C/lpbtf.c b/src/lpb/C/lpbtf.c index 6a0b122968..e10b0fc09c 100644 --- a/src/lpb/C/lpbtf.c +++ b/src/lpb/C/lpbtf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lpb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,14 +15,14 @@ int main(void) { struct lpb_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -31,16 +31,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of lp storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize LPB lpb_initialize( &data, &control, &status ); @@ -73,7 +73,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int A_dense_ne = 6; // number of elements of A + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; lpb_import( &control, &data, &status, n, m, "dense", A_ne, NULL, NULL, NULL ); @@ -91,10 +91,10 @@ int main(void) { printf("%c: LPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lsqp/C/lsqpt.c b/src/lsqp/C/lsqpt.c index 516c7d42d2..86fd30dd76 100644 --- a/src/lsqp/C/lsqpt.c +++ b/src/lsqp/C/lsqpt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lsqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,14 +15,14 @@ int main(void) { struct lsqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0}; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -33,16 +33,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize LSQP lsqp_initialize( &data, &control, &status ); @@ -75,7 +75,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int A_dense_ne = 6; // number of elements of A + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; lsqp_import( &control, &data, &status, n, m, "dense", A_dense_ne, NULL, NULL, NULL ); @@ -93,10 +93,10 @@ int main(void) { printf("%c: LSQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lsqp/C/lsqptf.c b/src/lsqp/C/lsqptf.c index 23ae2f6c02..9e7a33a5e4 100644 --- a/src/lsqp/C/lsqptf.c +++ b/src/lsqp/C/lsqptf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lsqp.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,14 +15,14 @@ int main(void) { struct lsqp_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -33,16 +33,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize LSQP lsqp_initialize( &data, &control, &status ); @@ -75,7 +75,7 @@ int main(void) { break; case 3: // dense st = 'D'; - int A_dense_ne = 6; // number of elements of A + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; lsqp_import( &control, &data, &status, n, m, "dense", A_dense_ne, NULL, NULL, NULL ); @@ -93,10 +93,10 @@ int main(void) { printf("%c: LSQP_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/lsrt/C/lsrtt.c b/src/lsrt/C/lsrtt.c index 2a7fe54e55..5a33a54f74 100644 --- a/src/lsrt/C/lsrtt.c +++ b/src/lsrt/C/lsrtt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lsrt.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,10 +15,10 @@ int main(void) { struct lsrt_inform_type inform; // Set problem data - int n = 50; // dimensions - int m = 2 * n; + ipc_ n = 50; // dimensions + ipc_ m = 2 * n; - int status; + ipc_ status; real_wp_ power = 3.0; real_wp_ weight = 1.0; real_wp_ x[n]; @@ -32,7 +32,7 @@ int main(void) { control.print_level = 0; lsrt_import_control( &control, &data, &status ); - for( int i = 0; i < m; i++) u[i] = 1.0; // b = 1 + for( ipc_ i = 0; i < m; i++) u[i] = 1.0; // b = 1 // iteration loop to find the minimizer with A^T = (I:diag(1:n)) while(true){ // reverse-communication loop @@ -42,14 +42,14 @@ int main(void) { } else if ( status < 0 ) { // error exit break; } else if ( status == 2 ) { // form u <- u + A * v - for( int i = 0; i < n; i++) { + for( ipc_ i = 0; i < n; i++) { u[i] = u[i] + v[i]; u[n+i] = u[n+i] + (i+1)*v[i]; } } else if ( status == 3 ) { // form v <- v + A^T * u - for( int i = 0; i < n; i++) v[i] = v[i] + u[i] + (i+1) * u[n+i]; + for( ipc_ i = 0; i < n; i++) v[i] = v[i] + u[i] + (i+1) * u[n+i]; } else if ( status == 4 ) { // restart - for( int i = 0; i < m; i++) u[i] = 1.0; + for( ipc_ i = 0; i < m; i++) u[i] = 1.0; }else{ printf(" the value %1i of status should not occur\n", status); diff --git a/src/lstr/C/lstrt.c b/src/lstr/C/lstrt.c index b8bb5dbc38..68bbcd60ee 100644 --- a/src/lstr/C/lstrt.c +++ b/src/lstr/C/lstrt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_lstr.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,10 +15,10 @@ int main(void) { struct lstr_inform_type inform; // Set problem data - int n = 50; // dimensions - int m = 2 * n; + ipc_ n = 50; // dimensions + ipc_ m = 2 * n; - int status; + ipc_ status; real_wp_ radius; real_wp_ x[n]; real_wp_ u[m]; @@ -28,7 +28,7 @@ int main(void) { lstr_initialize( &data, &control, &status ); // resolve with a smaller radius ? - for( int new_radius=0; new_radius <= 1; new_radius++){ + for( ipc_ new_radius=0; new_radius <= 1; new_radius++){ if ( new_radius == 0 ){ // original radius radius = 1.0; status = 1; @@ -39,7 +39,7 @@ int main(void) { control.print_level = 0; lstr_import_control( &control, &data, &status ); - for( int i = 0; i < m; i++) u[i] = 1.0; // b = 1 + for( ipc_ i = 0; i < m; i++) u[i] = 1.0; // b = 1 // iteration loop to find the minimizer with A^T = (I:diag(1:n)) while(true){ // reverse-communication loop @@ -49,14 +49,14 @@ int main(void) { } else if ( status < 0 ) { // error exit break; } else if ( status == 2 ) { // form u <- u + A * v - for( int i = 0; i < n; i++) { + for( ipc_ i = 0; i < n; i++) { u[i] = u[i] + v[i]; u[n+i] = u[n+i] + (i+1)*v[i]; } } else if ( status == 3 ) { // form v <- v + A^T * u - for( int i = 0; i < n; i++) v[i] = v[i] + u[i] + (i+1) * u[n+i]; + for( ipc_ i = 0; i < n; i++) v[i] = v[i] + u[i] + (i+1) * u[n+i]; } else if ( status == 4 ) { // restart - for( int i = 0; i < m; i++) u[i] = 1.0; + for( ipc_ i = 0; i < m; i++) u[i] = 1.0; }else{ printf(" the value %1i of status should not occur\n", status); diff --git a/src/nls/C/nlss.c b/src/nls/C/nlss.c index 831b755df5..abf6d1e844 100644 --- a/src/nls/C/nlss.c +++ b/src/nls/C/nlss.c @@ -15,28 +15,28 @@ struct userdata_type { // Function prototypes -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void * ); -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void * ); +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void * ); -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -48,19 +48,19 @@ int main(void) { userdata.p = 1.0; // Set problem data - int n = 2; // # variables - int m = 3; // # residuals - int j_ne = 5; // Jacobian elements - int h_ne = 2; // Hesssian elements - int p_ne = 2; // residual-Hessians-vector products elements - int J_row[] = {0, 1, 1, 2, 2}; // Jacobian J - int J_col[] = {0, 0, 1, 0, 1}; // - int J_ptr[] = {0, 1, 3, 5}; // row pointers - int H_row[] = {0, 1}; // Hessian H - int H_col[] = {0, 1}; // NB lower triangle - int H_ptr[] = {0, 1, 2}; // row pointers - int P_row[] = {0, 1}; // residual-Hessians-vector product matrix - int P_ptr[] = {0, 1, 2, 2}; // column pointers + ipc_ n = 2; // # variables + ipc_ m = 3; // # residuals + ipc_ j_ne = 5; // Jacobian elements + ipc_ h_ne = 2; // Hesssian elements + ipc_ p_ne = 2; // residual-Hessians-vector products elements + ipc_ J_row[] = {0, 1, 1, 2, 2}; // Jacobian J + ipc_ J_col[] = {0, 0, 1, 0, 1}; // + ipc_ J_ptr[] = {0, 1, 3, 5}; // row pointers + ipc_ H_row[] = {0, 1}; // Hessian H + ipc_ H_col[] = {0, 1}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2}; // row pointers + ipc_ P_row[] = {0, 1}; // residual-Hessians-vector product matrix + ipc_ P_ptr[] = {0, 1, 2, 2}; // column pointers // Set storage real_wp_ x[n]; // variables @@ -69,7 +69,7 @@ int main(void) { real_wp_ y[m]; // multipliers real_wp_ W[] = {1.0, 1.0, 1.0}; // weights char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n"); @@ -176,7 +176,7 @@ int main(void) { } // compute the residuals -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; real_wp_ p = myuserdata->p; c[0] = pow(x[0],2.0) + p; @@ -186,7 +186,7 @@ int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ } // compute the Jacobian -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -198,7 +198,7 @@ int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the Hessian -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -207,7 +207,7 @@ int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute Jacobian-vector products -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -223,7 +223,7 @@ int jacprod( int n, int m, const real_wp_ x[], const bool transpose, } // compute Hessian-vector products -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -233,7 +233,7 @@ int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], } // compute residual-Hessians-vector products -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; pval[0] = 2.0 * v[0]; diff --git a/src/nls/C/nlss2.c b/src/nls/C/nlss2.c index 626b77781e..2c5acfed29 100644 --- a/src/nls/C/nlss2.c +++ b/src/nls/C/nlss2.c @@ -15,28 +15,28 @@ struct userdata_type { // Function prototypes -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void * ); -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void * ); +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void * ); -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -48,19 +48,19 @@ int main(void) { userdata.p = 1.0; // Set problem data - int n = 2; // # variables - int m = 3; // # residuals - int j_ne = 5; // Jacobian elements - int h_ne = 2; // Hesssian elements - int p_ne = 2; // residual-Hessians-vector products elements - int J_row[] = {0, 1, 1, 2, 2}; // Jacobian J - int J_col[] = {0, 0, 1, 0, 1}; // - int J_ptr[] = {0, 1, 3, 5}; // row pointers - int H_row[] = {0, 1}; // Hessian H - int H_col[] = {0, 1}; // NB lower triangle - int H_ptr[] = {0, 1, 2}; // row pointers - int P_row[] = {0, 1}; // residual-Hessians-vector product matrix - int P_ptr[] = {0, 1, 2, 2}; // column pointers + ipc_ n = 2; // # variables + ipc_ m = 3; // # residuals + ipc_ j_ne = 5; // Jacobian elements + ipc_ h_ne = 2; // Hesssian elements + ipc_ p_ne = 2; // residual-Hessians-vector products elements + ipc_ J_row[] = {0, 1, 1, 2, 2}; // Jacobian J + ipc_ J_col[] = {0, 0, 1, 0, 1}; // + ipc_ J_ptr[] = {0, 1, 3, 5}; // row pointers + ipc_ H_row[] = {0, 1}; // Hessian H + ipc_ H_col[] = {0, 1}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2}; // row pointers + ipc_ P_row[] = {0, 1}; // residual-Hessians-vector product matrix + ipc_ P_ptr[] = {0, 1, 2, 2}; // column pointers // Set storage real_wp_ x[n]; // variables @@ -69,7 +69,7 @@ int main(void) { real_wp_ y[m]; // multipliers real_wp_ W[] = {1.0, 1.0, 1.0}; // weights char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n"); @@ -176,7 +176,7 @@ int main(void) { } // compute the residuals -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; real_wp_ p = myuserdata->p; c[0] = pow(x[0],2.0) + p; @@ -186,7 +186,7 @@ int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ } // compute the Jacobian -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -198,7 +198,7 @@ int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the Hessian -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -207,7 +207,7 @@ int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute Jacobian-vector products -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[], +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; if (transpose) { @@ -222,7 +222,7 @@ int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[ } // compute Hessian-vector products -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -232,7 +232,7 @@ int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], } // compute residual-Hessians-vector products -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; pval[0] = 2.0 * v[0]; diff --git a/src/nls/C/nlss3.c b/src/nls/C/nlss3.c index 28609c1275..07d4c0c94f 100644 --- a/src/nls/C/nlss3.c +++ b/src/nls/C/nlss3.c @@ -9,7 +9,7 @@ #include "galahad_nls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -20,28 +20,28 @@ struct userdata_type { // Function prototypes -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void * ); -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void * ); +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void * ); -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -53,23 +53,23 @@ int main(void) { userdata.p = 1.0; // Set problem data - int n = 2; // # variables - int m = 3; // # residuals - int j_ne = 5; // Jacobian elements - int h_ne = 2; // Hesssian elements - int p_ne = 2; // residual-Hessians-vector products elements - int J_row[] = {0, 1, 1, 2, 2}; // Jacobian J - int J_col[] = {0, 0, 1, 0, 1}; // - int J_ptr[] = {0, 1, 3, 5}; // row pointers - int H_row[] = {0, 1}; // Hessian H - int H_col[] = {0, 1}; // NB lower triangle - int H_ptr[] = {0, 1, 2}; // row pointers - int P_row[] = {0, 1}; // residual-Hessians-vector product matrix - int P_ptr[] = {0, 1, 2, 2}; // column pointers + ipc_ n = 2; // # variables + ipc_ m = 3; // # residuals + ipc_ j_ne = 5; // Jacobian elements + ipc_ h_ne = 2; // Hesssian elements + ipc_ p_ne = 2; // residual-Hessians-vector products elements + ipc_ J_row[] = {0, 1, 1, 2, 2}; // Jacobian J + ipc_ J_col[] = {0, 0, 1, 0, 1}; // + ipc_ J_ptr[] = {0, 1, 3, 5}; // row pointers + ipc_ H_row[] = {0, 1}; // Hessian H + ipc_ H_col[] = {0, 1}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2}; // row pointers + ipc_ P_row[] = {0, 1}; // residual-Hessians-vector product matrix + ipc_ P_ptr[] = {0, 1, 2, 2}; // column pointers // Set storage - int status; - int eval_status; + ipc_ status; + ipc_ eval_status; real_wp_ x[n]; // variables real_wp_ g[n]; // gradient real_wp_ c[m]; // residual @@ -240,7 +240,7 @@ int main(void) { } // compute the residuals -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; real_wp_ p = myuserdata->p; c[0] = pow(x[0],2.0) + p; @@ -250,7 +250,7 @@ int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ } // compute the Jacobian -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -262,7 +262,7 @@ int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the Hessian -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -271,7 +271,7 @@ int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute Jacobian-vector products -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -287,7 +287,7 @@ int jacprod( int n, int m, const real_wp_ x[], const bool transpose, } // compute Hessian-vector products -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -297,7 +297,7 @@ int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], } // compute residual-Hessians-vector products -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; pval[0] = 2.0 * v[0]; diff --git a/src/nls/C/nlss4.c b/src/nls/C/nlss4.c index 8bc7873ade..d6aa37dfbc 100644 --- a/src/nls/C/nlss4.c +++ b/src/nls/C/nlss4.c @@ -9,7 +9,7 @@ #include "galahad_nls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -20,28 +20,28 @@ struct userdata_type { // Function prototypes -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void * ); -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void * ); +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void * ); -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -53,23 +53,23 @@ int main(void) { userdata.p = 1.0; // Set problem data - int n = 2; // # variables - int m = 3; // # residuals - int j_ne = 5; // Jacobian elements - int h_ne = 2; // Hesssian elements - int p_ne = 2; // residual-Hessians-vector products elements - int J_row[] = {0, 1, 1, 2, 2}; // Jacobian J - int J_col[] = {0, 0, 1, 0, 1}; // - int J_ptr[] = {0, 1, 3, 5}; // row pointers - int H_row[] = {0, 1}; // Hessian H - int H_col[] = {0, 1}; // NB lower triangle - int H_ptr[] = {0, 1, 2}; // row pointers - int P_row[] = {0, 1}; // residual-Hessians-vector product matrix - int P_ptr[] = {0, 1, 2, 2}; // column pointers + ipc_ n = 2; // # variables + ipc_ m = 3; // # residuals + ipc_ j_ne = 5; // Jacobian elements + ipc_ h_ne = 2; // Hesssian elements + ipc_ p_ne = 2; // residual-Hessians-vector products elements + ipc_ J_row[] = {0, 1, 1, 2, 2}; // Jacobian J + ipc_ J_col[] = {0, 0, 1, 0, 1}; // + ipc_ J_ptr[] = {0, 1, 3, 5}; // row pointers + ipc_ H_row[] = {0, 1}; // Hessian H + ipc_ H_col[] = {0, 1}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2}; // row pointers + ipc_ P_row[] = {0, 1}; // residual-Hessians-vector product matrix + ipc_ P_ptr[] = {0, 1, 2, 2}; // column pointers // Set storage - int status; - int eval_status; + ipc_ status; + ipc_ eval_status; real_wp_ x[n]; // variables real_wp_ g[n]; // gradient real_wp_ c[m]; // residual @@ -245,7 +245,7 @@ int main(void) { } // compute the residuals -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; real_wp_ p = myuserdata->p; c[0] = pow(x[0],2.0) + p; @@ -255,7 +255,7 @@ int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ } // compute the Jacobian -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -267,7 +267,7 @@ int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the Hessian -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -276,7 +276,7 @@ int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute Jacobian-vector products -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -292,7 +292,7 @@ int jacprod( int n, int m, const real_wp_ x[], const bool transpose, } // compute Hessian-vector products -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; @@ -302,7 +302,7 @@ int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], } // compute residual-Hessians-vector products -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; pval[0] = 2.0 * v[0]; diff --git a/src/nls/C/nlst.c b/src/nls/C/nlst.c index 5c7774c4fc..344f902e8e 100644 --- a/src/nls/C/nlst.c +++ b/src/nls/C/nlst.c @@ -9,7 +9,7 @@ #include "galahad_nls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -20,27 +20,27 @@ struct userdata_type { // Function prototypes -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void * ); -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void * ); +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[], +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void * ); -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -52,19 +52,19 @@ int main(void) { userdata.p = 1.0; // Set problem data - int n = 2; // # variables - int m = 3; // # residuals - int j_ne = 5; // Jacobian elements - int h_ne = 2; // Hesssian elements - int p_ne = 2; // residual-Hessians-vector products elements - int J_row[] = {0, 1, 1, 2, 2}; // Jacobian J - int J_col[] = {0, 0, 1, 0, 1}; // - int J_ptr[] = {0, 1, 3, 5}; // row pointers - int H_row[] = {0, 1}; // Hessian H - int H_col[] = {0, 1}; // NB lower triangle - int H_ptr[] = {0, 1, 2}; // row pointers - int P_row[] = {0, 1}; // residual-Hessians-vector product matrix - int P_ptr[] = {0, 1, 2, 2}; // column pointers + ipc_ n = 2; // # variables + ipc_ m = 3; // # residuals + ipc_ j_ne = 5; // Jacobian elements + ipc_ h_ne = 2; // Hesssian elements + ipc_ p_ne = 2; // residual-Hessians-vector products elements + ipc_ J_row[] = {0, 1, 1, 2, 2}; // Jacobian J + ipc_ J_col[] = {0, 0, 1, 0, 1}; // + ipc_ J_ptr[] = {0, 1, 3, 5}; // row pointers + ipc_ H_row[] = {0, 1}; // Hessian H + ipc_ H_col[] = {0, 1}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2}; // row pointers + ipc_ P_row[] = {0, 1}; // residual-Hessians-vector product matrix + ipc_ P_ptr[] = {0, 1, 2, 2}; // column pointers // Set storage real_wp_ g[n]; // gradient @@ -72,14 +72,14 @@ int main(void) { real_wp_ y[m]; // multipliers real_wp_ W[] = {1.0, 1.0, 1.0}; // weights char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for( int d=1; d <= 5; d++){ -// for( int d=5; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ +// for( ipc_ d=5; d <= 5; d++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -162,7 +162,7 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ u[imax(m,n)], v[imax(m,n)]; real_wp_ J_val[j_ne], J_dense[m*n]; real_wp_ H_val[h_ne], H_dense[n*(n+1)/2], H_diag[n]; @@ -171,8 +171,8 @@ int main(void) { bool got_j = false; bool got_h = false; - for( int d=1; d <= 5; d++){ -// for( int d=1; d <= 4; d++){ + for( ipc_ d=1; d <= 5; d++){ +// for( ipc_ d=1; d <= 4; d++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -360,7 +360,7 @@ int main(void) { printf("\n basic tests of models used, direct access\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -397,7 +397,7 @@ int main(void) { printf("\n basic tests of models used, access by products\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -433,7 +433,7 @@ int main(void) { printf("\n basic tests of models used, reverse access\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -490,7 +490,7 @@ int main(void) { printf("\n basic tests of models used, reverse access by products\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -549,7 +549,7 @@ int main(void) { } // compute the residuals -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; real_wp_ p = myuserdata->p; c[0] = pow(x[0],2.0) + p; @@ -559,7 +559,7 @@ int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ } // compute the Jacobian -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -571,7 +571,7 @@ int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the Hessian -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -580,7 +580,7 @@ int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute Jacobian-vector products -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[], +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; if (transpose) { @@ -595,7 +595,7 @@ int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[ } // compute Hessian-vector products -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; u[0] = u[0] + 2.0 * y[0] * v[0]; @@ -604,7 +604,7 @@ int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[] } // compute residual-Hessians-vector products -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; pval[0] = 2.0 * v[0]; @@ -613,7 +613,7 @@ int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], } // scale v -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; u[0] = v[0]; @@ -622,7 +622,7 @@ int scale( int n, int m, const real_wp_ x[], real_wp_ u[], } // compute the dense Jacobian -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -635,7 +635,7 @@ int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the dense Hessian -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -645,7 +645,7 @@ int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute dense residual-Hessians-vector products -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; diff --git a/src/nls/C/nlstf.c b/src/nls/C/nlstf.c index f93bbb55a4..c7b9031820 100644 --- a/src/nls/C/nlstf.c +++ b/src/nls/C/nlstf.c @@ -9,7 +9,7 @@ #include "galahad_nls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -20,28 +20,28 @@ struct userdata_type { // Function prototypes -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void * ); -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void * ); +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void * ); -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void * ); -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void * ); -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -53,19 +53,19 @@ int main(void) { userdata.p = 1.0; // Set problem data - int n = 2; // # variables - int m = 3; // # residuals - int j_ne = 5; // Jacobian elements - int h_ne = 2; // Hesssian elements - int p_ne = 2; // residual-Hessians-vector products elements - int J_row[] = {1, 2, 2, 3, 3}; // Jacobian J - int J_col[] = {1, 1, 2, 1, 2}; // - int J_ptr[] = {1, 2, 4, 6}; // row pointers - int H_row[] = {1, 2}; // Hessian H - int H_col[] = {1, 2}; // NB lower triangle - int H_ptr[] = {1, 2, 3}; // row pointers - int P_row[] = {1, 2}; // residual-Hessians-vector product matrix - int P_ptr[] = {1, 2, 3, 3}; // column pointers + ipc_ n = 2; // # variables + ipc_ m = 3; // # residuals + ipc_ j_ne = 5; // Jacobian elements + ipc_ h_ne = 2; // Hesssian elements + ipc_ p_ne = 2; // residual-Hessians-vector products elements + ipc_ J_row[] = {1, 2, 2, 3, 3}; // Jacobian J + ipc_ J_col[] = {1, 1, 2, 1, 2}; // + ipc_ J_ptr[] = {1, 2, 4, 6}; // row pointers + ipc_ H_row[] = {1, 2}; // Hessian H + ipc_ H_col[] = {1, 2}; // NB lower triangle + ipc_ H_ptr[] = {1, 2, 3}; // row pointers + ipc_ P_row[] = {1, 2}; // residual-Hessians-vector product matrix + ipc_ P_ptr[] = {1, 2, 3, 3}; // column pointers // Set storage real_wp_ g[n]; // gradient @@ -73,14 +73,14 @@ int main(void) { real_wp_ y[m]; // multipliers real_wp_ W[] = {1.0, 1.0, 1.0}; // weights char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for( int d=1; d <= 5; d++){ -// for( int d=5; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ +// for( ipc_ d=5; d <= 5; d++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -163,7 +163,7 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ u[imax(m,n)], v[imax(m,n)]; real_wp_ J_val[j_ne], J_dense[m*n]; real_wp_ H_val[h_ne], H_dense[n*(n+1)/2], H_diag[n]; @@ -172,8 +172,8 @@ int main(void) { bool got_j = false; bool got_h = false; - for( int d=1; d <= 5; d++){ -// for( int d=1; d <= 4; d++){ + for( ipc_ d=1; d <= 5; d++){ +// for( ipc_ d=1; d <= 4; d++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -361,7 +361,7 @@ int main(void) { printf("\n basic tests of models used, direct access\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -398,7 +398,7 @@ int main(void) { printf("\n basic tests of models used, access by products\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -434,7 +434,7 @@ int main(void) { printf("\n basic tests of models used, reverse access\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -491,7 +491,7 @@ int main(void) { printf("\n basic tests of models used, reverse access by products\n\n"); - for( int model=3; model <= 8; model++){ + for( ipc_ model=3; model <= 8; model++){ // Initialize NLS nls_initialize( &data, &control, &inform ); @@ -550,7 +550,7 @@ int main(void) { } // compute the residuals -int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ +ipc_ res( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; real_wp_ p = myuserdata->p; c[0] = pow(x[0],2.0) + p; @@ -560,7 +560,7 @@ int res( int n, int m, const real_wp_ x[], real_wp_ c[], const void *userdata ){ } // compute the Jacobian -int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -572,7 +572,7 @@ int jac( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the Hessian -int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -581,7 +581,7 @@ int hess( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute Jacobian-vector products -int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[], +ipc_ jacprod( ipc_ n, ipc_ m, const real_wp_ x[], const bool transpose, real_wp_ u[], const real_wp_ v[], bool got_j, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; if (transpose) { @@ -596,7 +596,7 @@ int jacprod( int n, int m, const real_wp_ x[], const bool transpose, real_wp_ u[ } // compute Hessian-vector products -int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], +ipc_ hessprod( ipc_ n, ipc_ m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; u[0] = u[0] + 2.0 * y[0] * v[0]; @@ -605,7 +605,7 @@ int hessprod( int n, int m, const real_wp_ x[], const real_wp_ y[], real_wp_ u[] } // compute residual-Hessians-vector products -int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], +ipc_ rhessprods( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; pval[0] = 2.0 * v[0]; @@ -614,7 +614,7 @@ int rhessprods( int n, int m, int pne, const real_wp_ x[], const real_wp_ v[], } // scale v -int scale( int n, int m, const real_wp_ x[], real_wp_ u[], +ipc_ scale( ipc_ n, ipc_ m, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; u[0] = v[0]; @@ -623,7 +623,7 @@ int scale( int n, int m, const real_wp_ x[], real_wp_ u[], } // compute the dense Jacobian -int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], +ipc_ jac_dense( ipc_ n, ipc_ m, ipc_ jne, const real_wp_ x[], real_wp_ jval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; jval[0] = 2.0 * x[0]; @@ -636,7 +636,7 @@ int jac_dense( int n, int m, int jne, const real_wp_ x[], real_wp_ jval[], } // compute the dense Hessian -int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], +ipc_ hess_dense( ipc_ n, ipc_ m, ipc_ hne, const real_wp_ x[], const real_wp_ y[], real_wp_ hval[], const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; hval[0] = 2.0 * y[0]; @@ -646,7 +646,7 @@ int hess_dense( int n, int m, int hne, const real_wp_ x[], const real_wp_ y[], } // compute dense residual-Hessians-vector products -int rhessprods_dense( int n, int m, int pne, const real_wp_ x[], +ipc_ rhessprods_dense( ipc_ n, ipc_ m, ipc_ pne, const real_wp_ x[], const real_wp_ v[], real_wp_ pval[], bool got_h, const void *userdata ){ struct userdata_type *myuserdata = ( struct userdata_type * ) userdata; diff --git a/src/presolve/C/presolvet.c b/src/presolve/C/presolvet.c index 085146a05c..0e191b0f4a 100644 --- a/src/presolve/C/presolvet.c +++ b/src/presolve/C/presolvet.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_presolve.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct presolve_inform_type inform; // Set problem data - int n = 6; // dimension - int m = 5; // number of general constraints - int H_ne = 1; // Hesssian elements - int H_row[] = {0}; // row indices, NB lower triangle - int H_col[] = {0}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 1, 1, 1, 1, 1}; // row pointers + ipc_ n = 6; // dimension + ipc_ m = 5; // number of general constraints + ipc_ H_ne = 1; // Hesssian elements + ipc_ H_row[] = {0}; // row indices, NB lower triangle + ipc_ H_col[] = {0}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 1, 1, 1, 1, 1}; // row pointers real_wp_ H_val[] = {1.0}; // values real_wp_ g[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 8; // Jacobian elements - int A_row[] = {2, 2, 2, 3, 3, 4, 4, 4}; // row indices - int A_col[] = {2, 3, 4, 2, 5, 3, 4, 5}; // column indices - int A_ptr[] = {0, 0, 0, 3, 5, 8}; // row pointers + ipc_ A_ne = 8; // Jacobian elements + ipc_ A_row[] = {2, 2, 2, 3, 3, 4, 4, 4}; // row indices + ipc_ A_col[] = {2, 3, 4, 2, 5, 3, 4, 5}; // column indices + ipc_ A_ptr[] = {0, 0, 0, 3, 5, 8}; // row pointers real_wp_ A_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // values real_wp_ c_l[] = { 0.0, 0.0, 2.0, 1.0, 3.0}; // constraint lower bound real_wp_ c_u[] = {1.0, 1.0, 3.0, 3.0, 3.0}; // constraint upper bound @@ -36,15 +36,15 @@ int main(void) { // Set output storage char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ - int n_trans, m_trans, H_ne_trans, A_ne_trans; + ipc_ n_trans, m_trans, H_ne_trans, A_ne_trans; // Initialize PRESOLVE presolve_initialize( &data, &control, &status ); @@ -72,8 +72,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = n*(n+1)/2; // number of elements of H - int A_dense_ne = m*n; // number of elements of A + ipc_ H_dense_ne = n*(n+1)/2; // number of elements of H + ipc_ A_dense_ne = m*n; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0, @@ -129,12 +129,12 @@ int main(void) { //printf("%c: n, m, h_ne, a_ne = %2i, %2i, %2i, %2i\n", // st, n_trans, m_trans, H_ne_trans, A_ne_trans); real_wp_ f_trans; // transformed constant term in the objective - int H_ptr_trans[n_trans+1]; // transformed Hessian row pointers - int H_col_trans[H_ne_trans]; // transformed Hessian column indices + ipc_ H_ptr_trans[n_trans+1]; // transformed Hessian row pointers + ipc_ H_col_trans[H_ne_trans]; // transformed Hessian column indices real_wp_ H_val_trans[H_ne_trans]; // transformed Hessian values real_wp_ g_trans[n_trans]; // transformed gradient - int A_ptr_trans[m_trans+1]; // transformed Jacobian row pointers - int A_col_trans[A_ne_trans]; // transformed Jacobian column indices + ipc_ A_ptr_trans[m_trans+1]; // transformed Jacobian row pointers + ipc_ A_col_trans[A_ne_trans]; // transformed Jacobian column indices real_wp_ A_val_trans[A_ne_trans]; // transformed Jacobian values real_wp_ x_l_trans[n_trans]; // transformed lower variable bounds real_wp_ x_u_trans[n_trans]; // transformed upper variable bounds @@ -153,13 +153,13 @@ int main(void) { y_l_trans, y_u_trans, z_l_trans, z_u_trans ); real_wp_ x_trans[n_trans]; // transformed variables - for( int i = 0; i < n_trans; i++) x_trans[i] = 0.0; + for( ipc_ i = 0; i < n_trans; i++) x_trans[i] = 0.0; real_wp_ c_trans[m_trans]; // transformed constraints - for( int i = 0; i < m_trans; i++) c_trans[i] = 0.0; + for( ipc_ i = 0; i < m_trans; i++) c_trans[i] = 0.0; real_wp_ y_trans[m_trans]; // transformed Lagrange multipliers - for( int i = 0; i < m_trans; i++) y_trans[i] = 0.0; + for( ipc_ i = 0; i < m_trans; i++) y_trans[i] = 0.0; real_wp_ z_trans[n_trans]; // transformed dual variables - for( int i = 0; i < n_trans; i++) z_trans[i] = 0.0; + for( ipc_ i = 0; i < n_trans; i++) z_trans[i] = 0.0; real_wp_ x[n]; // primal variables real_wp_ c[m]; // constraint values @@ -180,10 +180,10 @@ int main(void) { printf("%c: PRESOLVE_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/presolve/C/presolvetf.c b/src/presolve/C/presolvetf.c index c0fc48bad8..dc6a3826c3 100644 --- a/src/presolve/C/presolvetf.c +++ b/src/presolve/C/presolvetf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_presolve.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct presolve_inform_type inform; // Set problem data - int n = 6; // dimension - int m = 5; // number of general constraints - int H_ne = 1; // Hesssian elements - int H_row[] = {1}; // row indices, NB lower triangle - int H_col[] = {1}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 2, 2, 2, 2, 2}; // row pointers + ipc_ n = 6; // dimension + ipc_ m = 5; // number of general constraints + ipc_ H_ne = 1; // Hesssian elements + ipc_ H_row[] = {1}; // row indices, NB lower triangle + ipc_ H_col[] = {1}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 2, 2, 2, 2, 2}; // row pointers real_wp_ H_val[] = {1.0}; // values real_wp_ g[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 8; // Jacobian elements - int A_row[] = {3, 3, 3, 4, 4, 5, 5, 5}; // row indices - int A_col[] = {3, 4, 5, 3, 6, 4, 5, 6}; // column indices - int A_ptr[] = {1, 1, 1, 4, 6, 9}; // row pointers + ipc_ A_ne = 8; // Jacobian elements + ipc_ A_row[] = {3, 3, 3, 4, 4, 5, 5, 5}; // row indices + ipc_ A_col[] = {3, 4, 5, 3, 6, 4, 5, 6}; // column indices + ipc_ A_ptr[] = {1, 1, 1, 4, 6, 9}; // row pointers real_wp_ A_val[] = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; // values real_wp_ c_l[] = { 0.0, 0.0, 2.0, 1.0, 3.0}; // constraint lower bound real_wp_ c_u[] = {1.0, 1.0, 3.0, 3.0, 3.0}; // constraint upper bound @@ -36,15 +36,15 @@ int main(void) { // Set output storage char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ - int n_trans, m_trans, H_ne_trans, A_ne_trans; + ipc_ n_trans, m_trans, H_ne_trans, A_ne_trans; // Initialize PRESOLVE presolve_initialize( &data, &control, &status ); @@ -72,8 +72,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = n*(n+1)/2; // number of elements of H - int A_dense_ne = m*n; // number of elements of A + ipc_ H_dense_ne = n*(n+1)/2; // number of elements of H + ipc_ A_dense_ne = m*n; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 0.0, 0.0, 0.0, 0.0, @@ -129,12 +129,12 @@ int main(void) { //printf("%c: n, m, h_ne, a_ne = %2i, %2i, %2i, %2i\n", // st, n_trans, m_trans, H_ne_trans, A_ne_trans); real_wp_ f_trans; // transformed constant term in the objective - int H_ptr_trans[n_trans+1]; // transformed Hessian row pointers - int H_col_trans[H_ne_trans]; // transformed Hessian column indices + ipc_ H_ptr_trans[n_trans+1]; // transformed Hessian row pointers + ipc_ H_col_trans[H_ne_trans]; // transformed Hessian column indices real_wp_ H_val_trans[H_ne_trans]; // transformed Hessian values real_wp_ g_trans[n_trans]; // transformed gradient - int A_ptr_trans[m_trans+1]; // transformed Jacobian row pointers - int A_col_trans[A_ne_trans]; // transformed Jacobian column indices + ipc_ A_ptr_trans[m_trans+1]; // transformed Jacobian row pointers + ipc_ A_col_trans[A_ne_trans]; // transformed Jacobian column indices real_wp_ A_val_trans[A_ne_trans]; // transformed Jacobian values real_wp_ x_l_trans[n_trans]; // transformed lower variable bounds real_wp_ x_u_trans[n_trans]; // transformed upper variable bounds @@ -153,13 +153,13 @@ int main(void) { y_l_trans, y_u_trans, z_l_trans, z_u_trans ); real_wp_ x_trans[n_trans]; // transformed variables - for( int i = 0; i < n_trans; i++) x_trans[i] = 0.0; + for( ipc_ i = 0; i < n_trans; i++) x_trans[i] = 0.0; real_wp_ c_trans[m_trans]; // transformed constraints - for( int i = 0; i < m_trans; i++) c_trans[i] = 0.0; + for( ipc_ i = 0; i < m_trans; i++) c_trans[i] = 0.0; real_wp_ y_trans[m_trans]; // transformed Lagrange multipliers - for( int i = 0; i < m_trans; i++) y_trans[i] = 0.0; + for( ipc_ i = 0; i < m_trans; i++) y_trans[i] = 0.0; real_wp_ z_trans[n_trans]; // transformed dual variables - for( int i = 0; i < n_trans; i++) z_trans[i] = 0.0; + for( ipc_ i = 0; i < n_trans; i++) z_trans[i] = 0.0; real_wp_ x[n]; // primal variables real_wp_ c[m]; // constraint values @@ -180,10 +180,10 @@ int main(void) { printf("%c: PRESOLVE_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/psls/C/pslst.c b/src/psls/C/pslst.c index 05bd452b57..c5cc4eded5 100644 --- a/src/psls/C/pslst.c +++ b/src/psls/C/pslst.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_psls.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,25 +16,25 @@ int main(void) { struct psls_inform_type inform; // Set problem data - int n = 5; // dimension of A - int ne = 7; // number of elements of A - int dense_ne = n * ( n + 1 ) / 2; // number of elements of dense A + ipc_ n = 5; // dimension of A + ipc_ ne = 7; // number of elements of A + ipc_ dense_ne = n * ( n + 1 ) / 2; // number of elements of dense A - int row[] = {0, 1, 1, 2, 2, 3, 4}; // A indices & values, NB lower triangle - int col[] = {0, 0, 4, 1, 2, 2, 4}; - int ptr[] = {0, 1, 3, 5, 6, 7}; + ipc_ row[] = {0, 1, 1, 2, 2, 3, 4}; // A indices & values, NB lower triangle + ipc_ col[] = {0, 0, 4, 1, 2, 2, 4}; + ipc_ ptr[] = {0, 1, 3, 5, 6, 7}; real_wp_ val[] = {2.0, 3.0, 6.0, 4.0, 1.0, 5.0, 1.0}; real_wp_ dense[] = {2.0, 3.0, 0.0, 0.0, 4.0, 1.0, 0.0, 0.0, 5.0, 0.0, 0.0, 6.0, 0.0, 0.0, 1.0}; char st; - int status; - int status_apply; + ipc_ status; + ipc_ status_apply; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize PSLS psls_initialize( &data, &control, &status ); @@ -81,7 +81,7 @@ int main(void) { st, status, status_apply ); //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); // Delete internal workspace psls_terminate( &data, &control, &inform ); diff --git a/src/psls/C/pslstf.c b/src/psls/C/pslstf.c index bad8a84da2..6d1ca2d185 100644 --- a/src/psls/C/pslstf.c +++ b/src/psls/C/pslstf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_psls.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,25 +16,25 @@ int main(void) { struct psls_inform_type inform; // Set problem data - int n = 5; // dimension of A - int ne = 7; // number of elements of A - int dense_ne = n * ( n + 1 ) / 2; // number of elements of dense A + ipc_ n = 5; // dimension of A + ipc_ ne = 7; // number of elements of A + ipc_ dense_ne = n * ( n + 1 ) / 2; // number of elements of dense A - int row[] = {1, 2, 2, 3, 3, 4, 5}; // A indices & values, NB lower triangle - int col[] = {1, 1, 5, 2, 3, 3, 5}; - int ptr[] = {1, 2, 4, 6, 7, 8}; + ipc_ row[] = {1, 2, 2, 3, 3, 4, 5}; // A indices & values, NB lower triangle + ipc_ col[] = {1, 1, 5, 2, 3, 3, 5}; + ipc_ ptr[] = {1, 2, 4, 6, 7, 8}; real_wp_ val[] = {2.0, 3.0, 6.0, 4.0, 1.0, 5.0, 1.0}; real_wp_ dense[] = {2.0, 3.0, 0.0, 0.0, 4.0, 1.0, 0.0, 0.0, 5.0, 0.0, 0.0, 6.0, 0.0, 0.0, 1.0}; char st; - int status; - int status_apply; + ipc_ status; + ipc_ status_apply; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize PSLS psls_initialize( &data, &control, &status ); @@ -81,7 +81,7 @@ int main(void) { st, status, status_apply ); //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); // Delete internal workspace psls_terminate( &data, &control, &inform ); diff --git a/src/qpa/C/qpat.c b/src/qpa/C/qpat.c index e828437a96..6cbb88e926 100644 --- a/src/qpa/C/qpat.c +++ b/src/qpa/C/qpat.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_qpa.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,21 +15,21 @@ int main(void) { struct qpa_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective real_wp_ rho_g = 0.1; // penalty paramter for general constraints real_wp_ rho_b = 0.1; // penalty paramter for simple bound constraints - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -38,16 +38,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize QPA qpa_initialize( &data, &control, &status ); @@ -82,8 +82,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; qpa_import( &control, &data, &status, n, m, @@ -143,10 +143,10 @@ int main(void) { printf("%c: QPA_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -182,9 +182,9 @@ int main(void) { printf("%c: QPA_solve exit status = %1i\n", st, inform.status); } // Start from 0 - for( int i=0; i <= n-1; i++) x[i] = 0.0; - for( int i=0; i <= m-1; i++) y[i] = 0.0; - for( int i=0; i <= n-1; i++) z[i] = 0.0; + for( ipc_ i=0; i <= n-1; i++) x[i] = 0.0; + for( ipc_ i=0; i <= m-1; i++) y[i] = 0.0; + for( ipc_ i=0; i <= n-1; i++) z[i] = 0.0; // solve the bound constrained l_1qp problem qpa_import( &control, &data, &status, n, m, diff --git a/src/qpa/C/qpatf.c b/src/qpa/C/qpatf.c index 257513d5a2..8aec588db8 100644 --- a/src/qpa/C/qpatf.c +++ b/src/qpa/C/qpatf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_qpa.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,21 +15,21 @@ int main(void) { struct qpa_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective real_wp_ rho_g = 0.1; // penalty paramter for general constraints real_wp_ rho_b = 0.1; // penalty paramter for simple bound constraints - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -38,16 +38,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize QPA qpa_initialize( &data, &control, &status ); @@ -82,8 +82,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; qpa_import( &control, &data, &status, n, m, @@ -143,10 +143,10 @@ int main(void) { printf("%c: QPA_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -182,9 +182,9 @@ int main(void) { printf("%c: QPA_solve exit status = %1i\n", st, inform.status); } // Start from 0 - for( int i=0; i <= n-1; i++) x[i] = 0.0; - for( int i=0; i <= m-1; i++) y[i] = 0.0; - for( int i=0; i <= n-1; i++) z[i] = 0.0; + for( ipc_ i=0; i <= n-1; i++) x[i] = 0.0; + for( ipc_ i=0; i <= m-1; i++) y[i] = 0.0; + for( ipc_ i=0; i <= n-1; i++) z[i] = 0.0; // solve the bound constrained l_1qp problem qpa_import( &control, &data, &status, n, m, diff --git a/src/qpb/C/qpbt.c b/src/qpb/C/qpbt.c index 312e0521c2..feb522e1f0 100644 --- a/src/qpb/C/qpbt.c +++ b/src/qpb/C/qpbt.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_qpb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct qpb_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {0, 1, 2 }; // row indices, NB lower triangle - int H_col[] = {0, 1, 2}; // column indices, NB lower triangle - int H_ptr[] = {0, 1, 2, 3}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {0, 1, 2 }; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2}; // column indices, NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 3}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {0, 0, 1, 1}; // row indices - int A_col[] = {0, 1, 1, 2}; // column indices - int A_ptr[] = {0, 2, 4}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {0, 0, 1, 1}; // row indices + ipc_ A_col[] = {0, 1, 1, 2}; // column indices + ipc_ A_ptr[] = {0, 2, 4}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,16 +36,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize QPB qpb_initialize( &data, &control, &status ); @@ -80,8 +80,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; qpb_import( &control, &data, &status, n, m, @@ -141,10 +141,10 @@ int main(void) { printf("%c: QPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/qpb/C/qpbtf.c b/src/qpb/C/qpbtf.c index 5abdc79790..8d3b8d9c1d 100644 --- a/src/qpb/C/qpbtf.c +++ b/src/qpb/C/qpbtf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_qpb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,19 +15,19 @@ int main(void) { struct qpb_inform_type inform; // Set problem data - int n = 3; // dimension - int m = 2; // number of general constraints - int H_ne = 3; // Hesssian elements - int H_row[] = {1, 2, 3 }; // row indices, NB lower triangle - int H_col[] = {1, 2, 3}; // column indices, NB lower triangle - int H_ptr[] = {1, 2, 3, 4}; // row pointers + ipc_ n = 3; // dimension + ipc_ m = 2; // number of general constraints + ipc_ H_ne = 3; // Hesssian elements + ipc_ H_row[] = {1, 2, 3 }; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3}; // column indices, NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 4}; // row pointers real_wp_ H_val[] = {1.0, 1.0, 1.0 }; // values real_wp_ g[] = {0.0, 2.0, 0.0}; // linear term in the objective real_wp_ f = 1.0; // constant term in the objective - int A_ne = 4; // Jacobian elements - int A_row[] = {1, 1, 2, 2}; // row indices - int A_col[] = {1, 2, 2, 3}; // column indices - int A_ptr[] = {1, 3, 5}; // row pointers + ipc_ A_ne = 4; // Jacobian elements + ipc_ A_row[] = {1, 1, 2, 2}; // row indices + ipc_ A_col[] = {1, 2, 2, 3}; // column indices + ipc_ A_ptr[] = {1, 3, 5}; // row pointers real_wp_ A_val[] = {2.0, 1.0, 1.0, 1.0 }; // values real_wp_ c_l[] = {1.0, 2.0}; // constraint lower bound real_wp_ c_u[] = {2.0, 2.0}; // constraint upper bound @@ -36,16 +36,16 @@ int main(void) { // Set output storage real_wp_ c[m]; // constraint values - int x_stat[n]; // variable status - int c_stat[m]; // constraint status + ipc_ x_stat[n]; // variable status + ipc_ c_stat[m]; // constraint status char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of qp storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize QPB qpb_initialize( &data, &control, &status ); @@ -80,8 +80,8 @@ int main(void) { break; case 3: // dense st = 'D'; - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A real_wp_ H_dense[] = {1.0, 0.0, 1.0, 0.0, 0.0, 1.0}; real_wp_ A_dense[] = {2.0, 1.0, 0.0, 0.0, 1.0, 1.0}; qpb_import( &control, &data, &status, n, m, @@ -141,10 +141,10 @@ int main(void) { printf("%c: QPB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace diff --git a/src/rpd/C/rpdt.c b/src/rpd/C/rpdt.c index 5d30126bbc..d18e146a3b 100644 --- a/src/rpd/C/rpdt.c +++ b/src/rpd/C/rpdt.c @@ -10,7 +10,7 @@ #include "galahad_rpd.h" #define BUFSIZE 1000 -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -19,7 +19,7 @@ int main(void) { char qplib_file[BUFSIZE]; char *galahad = "GALAHAD"; - int qplib_file_len; + ipc_ qplib_file_len; // make sure the GALAHAD environment variable actually exists if(!getenv(galahad)){ @@ -42,12 +42,12 @@ int main(void) { printf( " QPLIB file: %s\n", qplib_file ); - int status; - int n; - int m; - int h_ne; - int a_ne; - int h_c_ne; + ipc_ status; + ipc_ n; + ipc_ m; + ipc_ h_ne; + ipc_ a_ne; + ipc_ h_c_ne; char p_type[4]; printf(" C sparse matrix indexing\n\n"); @@ -94,35 +94,35 @@ int main(void) { printf( " c_u = %.1f %.1f\n", c_u[0], c_u[1] ); // Recover H - int h_row[h_ne]; - int h_col[h_ne]; + ipc_ h_row[h_ne]; + ipc_ h_col[h_ne]; real_wp_ h_val[h_ne]; rpd_get_h( &data, &status, h_ne, h_row, h_col, h_val ); printf( " h_row, h_col, h_val =\n"); - for( int i = 0; i < h_ne; i++) printf(" %i %i %.1f\n", + for( ipc_ i = 0; i < h_ne; i++) printf(" %i %i %.1f\n", h_row[i], h_col[i], h_val[i]); // Recover A - int a_row[a_ne]; - int a_col[a_ne]; + ipc_ a_row[a_ne]; + ipc_ a_col[a_ne]; real_wp_ a_val[a_ne]; rpd_get_a( &data, &status, a_ne, a_row, a_col, a_val ); printf( " a_row, a_col, a_val =\n"); - for( int i = 0; i < a_ne; i++) printf(" %i %i %.1f\n", + for( ipc_ i = 0; i < a_ne; i++) printf(" %i %i %.1f\n", a_row[i], a_col[i], a_val[i]); // Recover H_c - int h_c_ptr[h_c_ne]; - int h_c_row[h_c_ne]; - int h_c_col[h_c_ne]; + ipc_ h_c_ptr[h_c_ne]; + ipc_ h_c_row[h_c_ne]; + ipc_ h_c_col[h_c_ne]; real_wp_ h_c_val[h_c_ne]; rpd_get_h_c( &data, &status, h_c_ne, h_c_ptr, h_c_row, h_c_col, h_c_val ); printf( " h_c_row, h_c_col, h_c_val =\n"); - for( int i = 0; i < h_c_ne; i++) printf(" %i %i %i %.1f\n", + for( ipc_ i = 0; i < h_c_ne; i++) printf(" %i %i %i %.1f\n", h_c_ptr[i], h_c_row[i], h_c_col[i], h_c_val[i]); // Recover x_type - int x_type[n]; + ipc_ x_type[n]; rpd_get_x_type( &data, &status, n, x_type ); printf( " x_type = %i %i %i %i %i\n", x_type[0], x_type[1], x_type[2], x_type[3], x_type[4] ); diff --git a/src/rpd/C/rpdtf.c b/src/rpd/C/rpdtf.c index 4b268f8a17..57511deb69 100644 --- a/src/rpd/C/rpdtf.c +++ b/src/rpd/C/rpdtf.c @@ -10,7 +10,7 @@ #include "galahad_rpd.h" #define BUFSIZE 1000 -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -19,7 +19,7 @@ int main(void) { char qplib_file[BUFSIZE]; char *galahad = "GALAHAD"; - int qplib_file_len; + ipc_ qplib_file_len; // make sure the GALAHAD environment variable actually exists if(!getenv(galahad)){ @@ -42,12 +42,12 @@ int main(void) { printf( " QPLIB file: %s\n", qplib_file ); - int status; - int n; - int m; - int h_ne; - int a_ne; - int h_c_ne; + ipc_ status; + ipc_ n; + ipc_ m; + ipc_ h_ne; + ipc_ a_ne; + ipc_ h_c_ne; char p_type[4]; printf(" Fortran sparse matrix indexing\n\n"); @@ -94,35 +94,35 @@ int main(void) { printf( " c_u = %.1f %.1f\n", c_u[0], c_u[1] ); // Recover H - int h_row[h_ne]; - int h_col[h_ne]; + ipc_ h_row[h_ne]; + ipc_ h_col[h_ne]; real_wp_ h_val[h_ne]; rpd_get_h( &data, &status, h_ne, h_row, h_col, h_val ); printf( " h_row, h_col, h_val =\n"); - for( int i = 0; i < h_ne; i++) printf(" %i %i %.1f\n", + for( ipc_ i = 0; i < h_ne; i++) printf(" %i %i %.1f\n", h_row[i], h_col[i], h_val[i]); // Recover A - int a_row[a_ne]; - int a_col[a_ne]; + ipc_ a_row[a_ne]; + ipc_ a_col[a_ne]; real_wp_ a_val[a_ne]; rpd_get_a( &data, &status, a_ne, a_row, a_col, a_val ); printf( " a_row, a_col, a_val =\n"); - for( int i = 0; i < a_ne; i++) printf(" %i %i %.1f\n", + for( ipc_ i = 0; i < a_ne; i++) printf(" %i %i %.1f\n", a_row[i], a_col[i], a_val[i]); // Recover H_c - int h_c_ptr[h_c_ne]; - int h_c_row[h_c_ne]; - int h_c_col[h_c_ne]; + ipc_ h_c_ptr[h_c_ne]; + ipc_ h_c_row[h_c_ne]; + ipc_ h_c_col[h_c_ne]; real_wp_ h_c_val[h_c_ne]; rpd_get_h_c( &data, &status, h_c_ne, h_c_ptr, h_c_row, h_c_col, h_c_val ); printf( " h_c_row, h_c_col, h_c_val =\n"); - for( int i = 0; i < h_c_ne; i++) printf(" %i %i %i %.1f\n", + for( ipc_ i = 0; i < h_c_ne; i++) printf(" %i %i %i %.1f\n", h_c_ptr[i], h_c_row[i], h_c_col[i], h_c_val[i]); // Recover x_type - int x_type[n]; + ipc_ x_type[n]; rpd_get_x_type( &data, &status, n, x_type ); printf( " x_type = %i %i %i %i %i\n", x_type[0], x_type[1], x_type[2], x_type[3], x_type[4] ); diff --git a/src/rqs/C/rqst.c b/src/rqs/C/rqst.c index aff29e22de..7a6469e733 100644 --- a/src/rqs/C/rqst.c +++ b/src/rqs/C/rqst.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_rqs.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,22 +16,22 @@ int main(void) { struct rqs_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 1; // dimension of A - int H_ne = 4; // number of elements of H - int M_ne = 3; // number of elements of M - int A_ne = 3; // number of elements of A - int H_dense_ne = 6; // number of elements of H - int M_dense_ne = 6; // number of elements of M - int H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle - int H_col[] = {0, 1, 2, 0}; - int H_ptr[] = {0, 1, 2, 4}; - int M_row[] = {0, 1, 2}; // row indices, NB lower triangle - int M_col[] = {0, 1, 2}; - int M_ptr[] = {0, 1, 2, 3}; - int A_row[] = {0, 0, 0} ; - int A_col[] = {0, 1, 2}; - int A_ptr[] = {0, 3}; + ipc_ n = 3; // dimension of H + ipc_ m = 1; // dimension of A + ipc_ H_ne = 4; // number of elements of H + ipc_ M_ne = 3; // number of elements of M + ipc_ A_ne = 3; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ M_dense_ne = 6; // number of elements of M + ipc_ H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2, 0}; + ipc_ H_ptr[] = {0, 1, 2, 4}; + ipc_ M_row[] = {0, 1, 2}; // row indices, NB lower triangle + ipc_ M_col[] = {0, 1, 2}; + ipc_ M_ptr[] = {0, 1, 2, 3}; + ipc_ A_row[] = {0, 0, 0} ; + ipc_ A_col[] = {0, 1, 2}; + ipc_ A_ptr[] = {0, 3}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 4.0}; real_wp_ M_val[] = {1.0, 2.0, 1.0}; real_wp_ A_val[] = {1.0, 1.0, 1.0}; @@ -45,7 +45,7 @@ int main(void) { real_wp_ c[] = {0.0, 2.0, 0.0}; char st; - int status; + ipc_ status; real_wp_ x[n]; char ma[3]; @@ -53,8 +53,8 @@ int main(void) { printf(" basic tests of storage formats\n\n"); - for( int a_is=0; a_is <= 1; a_is++){ // add a linear constraint? - for( int m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? + for( ipc_ a_is=0; a_is <= 1; a_is++){ // add a linear constraint? + for( ipc_ m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? if (a_is == 1 && m_is == 1 ) { strcpy(ma, "MA"); @@ -69,7 +69,7 @@ int main(void) { strcpy(ma, " "); } - for( int storage_type=1; storage_type <= 4; storage_type++){ + for( ipc_ storage_type=1; storage_type <= 4; storage_type++){ // Initialize RQS rqs_initialize( &data, &control, &status ); @@ -227,7 +227,7 @@ int main(void) { printf("format %c%s: RQS_solve_problem exit status = %1i, f = %.2f\n", st, ma, inform.status, inform.obj_regularized ); //printf("x: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace rqs_terminate( &data, &control, &inform ); diff --git a/src/rqs/C/rqstf.c b/src/rqs/C/rqstf.c index ff5257c2d5..01cff38845 100644 --- a/src/rqs/C/rqstf.c +++ b/src/rqs/C/rqstf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_rqs.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,22 +16,22 @@ int main(void) { struct rqs_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 1; // dimension of A - int H_ne = 4; // number of elements of H - int M_ne = 3; // number of elements of M - int A_ne = 3; // number of elements of A - int H_dense_ne = 6; // number of elements of H - int M_dense_ne = 6; // number of elements of M - int H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle - int H_col[] = {1, 2, 3, 1}; - int H_ptr[] = {1, 2, 3, 5}; - int M_row[] = {1, 2, 3}; // row indices, NB lower triangle - int M_col[] = {1, 2, 3}; - int M_ptr[] = {1, 2, 3, 4}; - int A_row[] = {1, 1, 1} ; - int A_col[] = {1, 2, 3}; - int A_ptr[] = {1, 4}; + ipc_ n = 3; // dimension of H + ipc_ m = 1; // dimension of A + ipc_ H_ne = 4; // number of elements of H + ipc_ M_ne = 3; // number of elements of M + ipc_ A_ne = 3; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ M_dense_ne = 6; // number of elements of M + ipc_ H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3, 1}; + ipc_ H_ptr[] = {1, 2, 3, 5}; + ipc_ M_row[] = {1, 2, 3}; // row indices, NB lower triangle + ipc_ M_col[] = {1, 2, 3}; + ipc_ M_ptr[] = {1, 2, 3, 4}; + ipc_ A_row[] = {1, 1, 1} ; + ipc_ A_col[] = {1, 2, 3}; + ipc_ A_ptr[] = {1, 4}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 4.0}; real_wp_ M_val[] = {1.0, 2.0, 1.0}; real_wp_ A_val[] = {1.0, 1.0, 1.0}; @@ -45,7 +45,7 @@ int main(void) { real_wp_ c[] = {0.0, 2.0, 0.0}; char st; - int status; + ipc_ status; real_wp_ x[n]; char ma[3]; @@ -53,8 +53,8 @@ int main(void) { printf(" basic tests of storage formats\n\n"); - for( int a_is=0; a_is <= 1; a_is++){ // add a linear constraint? - for( int m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? + for( ipc_ a_is=0; a_is <= 1; a_is++){ // add a linear constraint? + for( ipc_ m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? if (a_is == 1 && m_is == 1 ) { strcpy(ma, "MA"); @@ -69,7 +69,7 @@ int main(void) { strcpy(ma, " "); } - for( int storage_type=1; storage_type <= 4; storage_type++){ + for( ipc_ storage_type=1; storage_type <= 4; storage_type++){ // Initialize RQS rqs_initialize( &data, &control, &status ); @@ -227,7 +227,7 @@ int main(void) { printf("format %c%s: RQS_solve_problem exit status = %1i, f = %.2f\n", st, ma, inform.status, inform.obj_regularized ); //printf("x: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace rqs_terminate( &data, &control, &inform ); diff --git a/src/sbls/C/sblst.c b/src/sbls/C/sblst.c index ffa83e1677..c1072ce0e2 100644 --- a/src/sbls/C/sblst.c +++ b/src/sbls/C/sblst.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_sbls.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,23 +16,23 @@ int main(void) { struct sbls_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 2; // dimension of C - int H_ne = 4; // number of elements of H - int A_ne = 3; // number of elements of A - int C_ne = 3; // number of elements of C - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A - int C_dense_ne = 3; // number of elements of C - int H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle - int H_col[] = {0, 1, 2, 0}; - int H_ptr[] = {0, 1, 2, 4}; - int A_row[] = {0, 0, 1}; - int A_col[] = {0, 1, 2}; - int A_ptr[] = {0, 2, 3}; - int C_row[] = {0, 1, 1}; // row indices, NB lower triangle - int C_col[] = {0, 0, 1}; - int C_ptr[] = {0, 1, 3}; + ipc_ n = 3; // dimension of H + ipc_ m = 2; // dimension of C + ipc_ H_ne = 4; // number of elements of H + ipc_ A_ne = 3; // number of elements of A + ipc_ C_ne = 3; // number of elements of C + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A + ipc_ C_dense_ne = 3; // number of elements of C + ipc_ H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2, 0}; + ipc_ H_ptr[] = {0, 1, 2, 4}; + ipc_ A_row[] = {0, 0, 1}; + ipc_ A_col[] = {0, 1, 2}; + ipc_ A_ptr[] = {0, 2, 3}; + ipc_ C_row[] = {0, 1, 1}; // row indices, NB lower triangle + ipc_ C_col[] = {0, 0, 1}; + ipc_ C_ptr[] = {0, 1, 3}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 1.0}; real_wp_ A_val[] = {2.0, 1.0, 1.0}; real_wp_ C_val[] = {4.0, 1.0, 2.0}; @@ -45,13 +45,13 @@ int main(void) { real_wp_ C_scid[] = {2.0}; char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize SBLS sbls_initialize( &data, &control, &status ); @@ -163,7 +163,7 @@ int main(void) { printf("%c: SBLS_solve exit status = %1i\n", st, inform.status); } //printf("sol: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace sbls_terminate( &data, &control, &inform ); diff --git a/src/sbls/C/sblstf.c b/src/sbls/C/sblstf.c index 8d15a9941f..c865103799 100644 --- a/src/sbls/C/sblstf.c +++ b/src/sbls/C/sblstf.c @@ -7,7 +7,7 @@ #include "galahad_cfunctions.h" #include "galahad_sbls.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -15,23 +15,23 @@ int main(void) { struct sbls_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 2; // dimension of C - int H_ne = 4; // number of elements of H - int A_ne = 3; // number of elements of A - int C_ne = 3; // number of elements of C - int H_dense_ne = 6; // number of elements of H - int A_dense_ne = 6; // number of elements of A - int C_dense_ne = 3; // number of elements of C - int H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle - int H_col[] = {1, 2, 3, 1}; - int H_ptr[] = {1, 2, 3, 5}; - int A_row[] = {1, 1, 2}; - int A_col[] = {1, 2, 3}; - int A_ptr[] = {1, 3, 4}; - int C_row[] = {1, 2, 2}; // row indices, NB lower triangle - int C_col[] = {1, 1, 2}; - int C_ptr[] = {1, 2, 4}; + ipc_ n = 3; // dimension of H + ipc_ m = 2; // dimension of C + ipc_ H_ne = 4; // number of elements of H + ipc_ A_ne = 3; // number of elements of A + ipc_ C_ne = 3; // number of elements of C + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ A_dense_ne = 6; // number of elements of A + ipc_ C_dense_ne = 3; // number of elements of C + ipc_ H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3, 1}; + ipc_ H_ptr[] = {1, 2, 3, 5}; + ipc_ A_row[] = {1, 1, 2}; + ipc_ A_col[] = {1, 2, 3}; + ipc_ A_ptr[] = {1, 3, 4}; + ipc_ C_row[] = {1, 2, 2}; // row indices, NB lower triangle + ipc_ C_col[] = {1, 1, 2}; + ipc_ C_ptr[] = {1, 2, 4}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 1.0}; real_wp_ A_val[] = {2.0, 1.0, 1.0}; real_wp_ C_val[] = {4.0, 1.0, 2.0}; @@ -44,13 +44,13 @@ int main(void) { real_wp_ C_scid[] = {2.0}; char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int d=1; d <= 7; d++){ + for( ipc_ d=1; d <= 7; d++){ // Initialize SBLS sbls_initialize( &data, &control, &status ); @@ -160,7 +160,7 @@ int main(void) { printf("%c: SBLS_solve exit status = %1i\n", st, inform.status); } //printf("sol: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace sbls_terminate( &data, &control, &inform ); diff --git a/src/sha/C/shat.c b/src/sha/C/shat.c index ba734cd013..5e1a3286cf 100644 --- a/src/sha/C/shat.c +++ b/src/sha/C/shat.c @@ -9,7 +9,7 @@ #include "galahad_cfunctions.h" #include "galahad_sha.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -17,26 +17,26 @@ int main(void) { struct sha_inform_type inform; // Set problem data - int n = 5; // dimension of H - int ne = 9; // number of entries in upper triangle of H - int m_max = 9; // upper bound on max # differences required - int row[] = {0, 0, 0, 0, 0, 1, 2, 3, 4}; // row indices, NB upper triangle - int col[] = {0, 1, 2, 3, 4, 1, 2, 3, 4}; // column indices + ipc_ n = 5; // dimension of H + ipc_ ne = 9; // number of entries in upper triangle of H + ipc_ m_max = 9; // upper bound on max # differences required + ipc_ row[] = {0, 0, 0, 0, 0, 1, 2, 3, 4}; // row indices, NB upper triangle + ipc_ col[] = {0, 1, 2, 3, 4, 1, 2, 3, 4}; // column indices real_wp_ val[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; // values - int i, j, k, l, m, status; + ipc_ i, j, k, l, m, status; real_wp_ rr, v; real_wp_ val_est[ne]; - int ls1 = m_max, ls2 = n; // dimensions of s - int ly1 = m_max, ly2 = n; // dimensions of y + ipc_ ls1 = m_max, ls2 = n; // dimensions of s + ipc_ ly1 = m_max, ly2 = n; // dimensions of y real_wp_ strans[ls1][ls2]; real_wp_ ytrans[ly1][ly2]; - int order[m_max]; // diffference precedence order + ipc_ order[m_max]; // diffference precedence order printf(" C sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int algorithm=1; algorithm <= 5; algorithm++){ + for( ipc_ algorithm=1; algorithm <= 5; algorithm++){ // Initialize SHA - use the sytr solver sha_initialize( &data, &control, &status ); @@ -53,15 +53,15 @@ int main(void) { m = m + control.extra_differences; srand(1); - for( int k = 0; k < m; k++) { + for( ipc_ k = 0; k < m; k++) { // set up random differences strans - for( int i = 0; i < n; i++) { + for( ipc_ i = 0; i < n; i++) { rr = ((real_wp_) rand()/ RAND_MAX); strans[k][i] = -1.0 + 2.0 * rr; ytrans[k][i] = 0.0; // initialize ytrans as the zero matrix } // form y = H s - for( int l = 0; l < ne; l++) { + for( ipc_ l = 0; l < ne; l++) { i = row[l]; j = col[l]; v = val[l]; @@ -78,7 +78,7 @@ int main(void) { // if the natural order is ok printf(" H from %i differences:\n", m); - for( int i = 0; i < ne; i++) printf(" %1.2f", val_est[i]); + for( ipc_ i = 0; i < ne; i++) printf(" %1.2f", val_est[i]); sha_information( &data, &inform, &status ); diff --git a/src/sha/C/shatf.c b/src/sha/C/shatf.c index 1e144a3852..e80531c195 100644 --- a/src/sha/C/shatf.c +++ b/src/sha/C/shatf.c @@ -9,7 +9,7 @@ #include "galahad_cfunctions.h" #include "galahad_sha.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -17,26 +17,26 @@ int main(void) { struct sha_inform_type inform; // Set problem data - int n = 5; // dimension of H - int ne = 9; // number of entries in upper triangle of H - int m_max = 9; // upper bound on max # differences required - int row[] = {1, 1, 1, 1, 1, 2, 3, 4, 5}; // row indices, NB upper triangle - int col[] = {1, 2, 3, 4, 5, 2, 3, 4, 5}; // column indices + ipc_ n = 5; // dimension of H + ipc_ ne = 9; // number of entries in upper triangle of H + ipc_ m_max = 9; // upper bound on max # differences required + ipc_ row[] = {1, 1, 1, 1, 1, 2, 3, 4, 5}; // row indices, NB upper triangle + ipc_ col[] = {1, 2, 3, 4, 5, 2, 3, 4, 5}; // column indices real_wp_ val[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; // values - int i, j, k, l, m, status; + ipc_ i, j, k, l, m, status; real_wp_ rr, v; real_wp_ val_est[ne]; - int ls1 = m_max, ls2 = n; // dimensions of s - int ly1 = m_max, ly2 = n; // dimensions of y + ipc_ ls1 = m_max, ls2 = n; // dimensions of s + ipc_ ly1 = m_max, ly2 = n; // dimensions of y real_wp_ strans[ls1][ls2]; real_wp_ ytrans[ly1][ly2]; - int order[m_max]; // diffference precedence order + ipc_ order[m_max]; // diffference precedence order printf(" Fortran sparse matrix indexing\n\n"); printf(" basic tests of storage formats\n\n"); - for( int algorithm=1; algorithm <= 5; algorithm++){ + for( ipc_ algorithm=1; algorithm <= 5; algorithm++){ // Initialize SHA - use the sytr solver sha_initialize( &data, &control, &status ); @@ -53,15 +53,15 @@ int main(void) { m = m + control.extra_differences; srand(1); - for( int k = 0; k < m; k++) { + for( ipc_ k = 0; k < m; k++) { // set up random differences strans - for( int i = 0; i < n; i++) { + for( ipc_ i = 0; i < n; i++) { rr = ((real_wp_) rand()/ RAND_MAX); strans[k][i] = -1.0 + 2.0 * rr; ytrans[k][i] = 0.0; // initialize ytrans as the zero matrix } // form y = H s - for( int l = 0; l < ne; l++) { + for( ipc_ l = 0; l < ne; l++) { i = row[l]-1; j = col[l]-1; v = val[l]; @@ -78,7 +78,7 @@ int main(void) { // if the natural order is ok printf(" H from %i differences:\n", m); - for( int i = 0; i < ne; i++) printf(" %1.2f", val_est[i]); + for( ipc_ i = 0; i < ne; i++) printf(" %1.2f", val_est[i]); sha_information( &data, &inform, &status ); diff --git a/src/slls/C/sllst.c b/src/slls/C/sllst.c index 555a8ce17d..aba3267518 100644 --- a/src/slls/C/sllst.c +++ b/src/slls/C/sllst.c @@ -9,7 +9,7 @@ #include "galahad_slls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -19,9 +19,9 @@ struct userdata_type { }; // Function prototypes -int prec( int n, const real_wp_ v[], real_wp_ p[], const void * ); +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -33,21 +33,21 @@ int main(void) { userdata.scale = 1.0; // Set problem data - int n = 10; // dimension - int o = n + 1; // number of residuals - int Ao_ne = 2 * n; // sparse Jacobian elements - int Ao_dense_ne = o * n; // dense Jacobian elements + ipc_ n = 10; // dimension + ipc_ o = n + 1; // number of residuals + ipc_ Ao_ne = 2 * n; // sparse Jacobian elements + ipc_ Ao_dense_ne = o * n; // dense Jacobian elements // row-wise storage - int Ao_row[Ao_ne]; // row indices, - int Ao_col[Ao_ne]; // column indices - int Ao_ptr_ne = o+1; // row pointer length - int Ao_ptr[Ao_ptr_ne]; // row pointers + ipc_ Ao_row[Ao_ne]; // row indices, + ipc_ Ao_col[Ao_ne]; // column indices + ipc_ Ao_ptr_ne = o+1; // row pointer length + ipc_ Ao_ptr[Ao_ptr_ne]; // row pointers real_wp_ Ao_val[Ao_ne]; // values real_wp_ Ao_dense[Ao_dense_ne]; // dense values // column-wise storage - int Ao_by_col_row[Ao_ne]; // row indices, - int Ao_by_col_ptr_ne = n+1; // column pointer length - int Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers + ipc_ Ao_by_col_row[Ao_ne]; // row indices, + ipc_ Ao_by_col_ptr_ne = n+1; // column pointer length + ipc_ Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers real_wp_ Ao_by_col_val[Ao_ne]; // values real_wp_ Ao_by_col_dense[Ao_dense_ne]; // dense values real_wp_ b[o]; // linear term in the objective @@ -57,33 +57,33 @@ int main(void) { real_wp_ g[n]; // gradient // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st[3]; - int i, l, status; + ipc_ i, l, status; // A = ( I ) and b = ( i * e ) // ( e^T ) ( n + 1 ) - for( int i = 0; i < n; i++) b[i] = i + 1; + for( ipc_ i = 0; i < n; i++) b[i] = i + 1; b[n] = n+1; // A by rows - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_ptr[i] = i; Ao_row[i] = i; Ao_col[i] = i; Ao_val[i] = 1.0; } Ao_ptr[n] = n; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_row[n+i] = n; Ao_col[n+i] = i; Ao_val[n+i] = 1.0; } Ao_ptr[o] = Ao_ne; l = - 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; if ( i == j ) { @@ -94,7 +94,7 @@ int main(void) { } } } - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_dense[l] = 1.0; @@ -103,7 +103,7 @@ int main(void) { // A by columns l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_by_col_ptr[j] = l ; Ao_by_col_row[l] = j ; Ao_by_col_val[l] = 1.0; @@ -112,9 +112,9 @@ int main(void) { } Ao_by_col_ptr[n] = Ao_ne; l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { l = l + 1; if ( i == j ) { @@ -132,7 +132,7 @@ int main(void) { printf(" basic tests of slls storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize SLLS slls_initialize( &data, &control, &status ); @@ -141,8 +141,8 @@ int main(void) { control.f_indexing = false; // C sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; switch(d){ case 1: // sparse co-ordinate storage @@ -200,10 +200,10 @@ int main(void) { printf("%s: SLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -213,10 +213,10 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int on; + ipc_ on; on = imax( n, o ); - int eval_status, nz_v_start, nz_v_end, nz_p_end; - int nz_v[on], nz_p[o], mask[o]; + ipc_ eval_status, nz_v_start, nz_v_end, nz_p_end; + ipc_ nz_v[on], nz_p[o], mask[o]; real_wp_ v[on], p[on]; nz_p_end = 0; @@ -228,12 +228,12 @@ int main(void) { control.f_indexing = false; // C sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; strcpy( st, "RC" ); - for( int i = 0; i < o; i++) mask[i] = 0; + for( ipc_ i = 0; i < o; i++) mask[i] = 0; slls_import_without_a( &control, &data, &status, n, o ) ; while(true){ // reverse-communication loop slls_solve_reverse_a_prod( &data, &status, &eval_status, n, o, b, @@ -246,23 +246,23 @@ int main(void) { break; }else if(status == 2){ // evaluate p = Av p[n]=0.0; - for( int i = 0; i < n; i++){ + for( ipc_ i = 0; i < n; i++){ p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 3){ // evaluate p = A^Tv - for( int i = 0; i < n; i++) p[i] = v[i] + v[n]; + for( ipc_ i = 0; i < n; i++) p[i] = v[i] + v[n]; }else if(status == 4){ // evaluate p = Av for sparse v p[n]=0.0; - for( int i = 0; i < n; i++) p[i] = 0.0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ i = 0; i < n; i++) p[i] = 0.0; + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 5){ // evaluate p = sparse Av for sparse v nz_p_end = 0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; if (mask[i] == 0){ mask[i] = 1; @@ -279,14 +279,14 @@ int main(void) { p[n] = p[n] + v[i]; } } - for( int l = 0; l < nz_p_end; l++) mask[nz_p[l]] = 0; + for( ipc_ l = 0; l < nz_p_end; l++) mask[nz_p[l]] = 0; }else if(status == 6){ // evaluate p = sparse A^Tv - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]; p[i] = v[i] + v[n]; } }else if(status == 7){ // evaluate p = P^{-}v - for( int i = 0; i < n; i++) p[i] = userdata.scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = userdata.scale * v[i]; }else{ printf(" the value %1i of status should not occur\n", status); break; @@ -306,10 +306,10 @@ int main(void) { printf("%s: SLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -317,9 +317,9 @@ int main(void) { } // Apply preconditioner -int prec( int n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ scale = myuserdata->scale; - for( int i = 0; i < n; i++) p[i] = scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = scale * v[i]; return 0; } diff --git a/src/slls/C/sllstf.c b/src/slls/C/sllstf.c index 9cc6868c3b..44a4d1c2f6 100644 --- a/src/slls/C/sllstf.c +++ b/src/slls/C/sllstf.c @@ -9,7 +9,7 @@ #include "galahad_slls.h" // Define imax -int imax(int a, int b) { +ipc_ imax(ipc_ a, ipc_ b) { return (a > b) ? a : b; }; @@ -19,9 +19,9 @@ struct userdata_type { }; // Function prototypes -int prec( int n, const real_wp_ v[], real_wp_ p[], const void * ); +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -33,21 +33,21 @@ int main(void) { userdata.scale = 1.0; // Set problem data - int n = 10; // dimension - int o = n + 1; // number of residuals - int Ao_ne = 2 * n; // sparse Jacobian elements - int Ao_dense_ne = o * n; // dense Jacobian elements + ipc_ n = 10; // dimension + ipc_ o = n + 1; // number of residuals + ipc_ Ao_ne = 2 * n; // sparse Jacobian elements + ipc_ Ao_dense_ne = o * n; // dense Jacobian elements // row-wise storage - int Ao_row[Ao_ne]; // row indices, - int Ao_col[Ao_ne]; // column indices - int Ao_ptr_ne = o+1; // row pointer length - int Ao_ptr[Ao_ptr_ne]; // row pointers + ipc_ Ao_row[Ao_ne]; // row indices, + ipc_ Ao_col[Ao_ne]; // column indices + ipc_ Ao_ptr_ne = o+1; // row pointer length + ipc_ Ao_ptr[Ao_ptr_ne]; // row pointers real_wp_ Ao_val[Ao_ne]; // values real_wp_ Ao_dense[Ao_dense_ne]; // dense values // column-wise storage - int Ao_by_col_row[Ao_ne]; // row indices, - int Ao_by_col_ptr_ne = n+1; // column pointer length - int Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers + ipc_ Ao_by_col_row[Ao_ne]; // row indices, + ipc_ Ao_by_col_ptr_ne = n+1; // column pointer length + ipc_ Ao_by_col_ptr[Ao_by_col_ptr_ne]; // column pointers real_wp_ Ao_by_col_val[Ao_ne]; // values real_wp_ Ao_by_col_dense[Ao_dense_ne]; // dense values real_wp_ b[o]; // linear term in the objective @@ -57,33 +57,33 @@ int main(void) { real_wp_ g[n]; // gradient // Set output storage - int x_stat[n]; // variable status + ipc_ x_stat[n]; // variable status char st[3]; - int i, l, status; + ipc_ i, l, status; // A = ( I ) and b = ( i * e ) // ( e^T ) ( n + 1 ) - for( int i = 0; i < n; i++) b[i] = i + 1; + for( ipc_ i = 0; i < n; i++) b[i] = i + 1; b[n] = n+1; // A by rows - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_ptr[i] = i + 1; Ao_row[i] = i + 1; Ao_col[i] = i + 1; Ao_val[i] = 1.0; } Ao_ptr[n] = n + 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { Ao_row[n+i] = o; Ao_col[n+i] = i + 1; Ao_val[n+i] = 1.0; } Ao_ptr[o] = Ao_ne + 1; l = - 1; - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; if ( i == j ) { @@ -94,7 +94,7 @@ int main(void) { } } } - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_dense[l] = 1.0; @@ -103,7 +103,7 @@ int main(void) { // A by columns l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { l = l + 1; Ao_by_col_ptr[j] = l + 1; Ao_by_col_row[l] = j + 1; Ao_by_col_val[l] = 1.0; @@ -112,9 +112,9 @@ int main(void) { } Ao_by_col_ptr[n] = Ao_ne; l = - 1; - for( int j = 0; j < n; j++) + for( ipc_ j = 0; j < n; j++) { - for( int i = 0; i < n; i++) + for( ipc_ i = 0; i < n; i++) { l = l + 1; if ( i == j ) { @@ -132,7 +132,7 @@ int main(void) { printf(" basic tests of slls storage formats\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize SLLS slls_initialize( &data, &control, &status ); @@ -141,8 +141,8 @@ int main(void) { control.f_indexing = true; // fortran sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; switch(d){ case 1: // sparse co-ordinate storage @@ -200,10 +200,10 @@ int main(void) { printf("%s: SLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -213,10 +213,10 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int on; + ipc_ on; on = imax( o, n ); - int eval_status, nz_v_start, nz_v_end, nz_p_end; - int nz_v[on], nz_p[o], mask[o]; + ipc_ eval_status, nz_v_start, nz_v_end, nz_p_end; + ipc_ nz_v[on], nz_p[o], mask[o]; real_wp_ v[on], p[on]; nz_p_end = 0; @@ -228,11 +228,11 @@ int main(void) { control.f_indexing = true; // fortran sparse matrix indexing // Start from 0 - for( int i = 0; i < n; i++) x[i] = 0.0; - for( int i = 0; i < n; i++) z[i] = 0.0; + for( ipc_ i = 0; i < n; i++) x[i] = 0.0; + for( ipc_ i = 0; i < n; i++) z[i] = 0.0; strcpy( st, "RC" ); - for( int i = 0; i < o; i++) mask[i] = 0; + for( ipc_ i = 0; i < o; i++) mask[i] = 0; slls_import_without_a( &control, &data, &status, n, o ) ; while(true){ // reverse-communication loop slls_solve_reverse_a_prod( &data, &status, &eval_status, n, o, b, @@ -245,23 +245,23 @@ int main(void) { break; }else if(status == 2){ // evaluate p = Av p[n]=0.0; - for( int i = 0; i < n; i++){ + for( ipc_ i = 0; i < n; i++){ p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 3){ // evaluate p = A^Tv - for( int i = 0; i < n; i++) p[i] = v[i] + v[n]; + for( ipc_ i = 0; i < n; i++) p[i] = v[i] + v[n]; }else if(status == 4){ // evaluate p = Av for sparse v p[n]=0.0; - for( int i = 0; i < n; i++) p[i] = 0.0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ i = 0; i < n; i++) p[i] = 0.0; + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; p[i] = v[i]; p[n] = p[n] + v[i]; } }else if(status == 5){ // evaluate p = sparse Av for sparse v nz_p_end = 0; - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; if (mask[i] == 0){ mask[i] = 1; @@ -278,14 +278,14 @@ int main(void) { p[n] = p[n] + v[i]; } } - for( int l = 0; l < nz_p_end; l++) mask[nz_p[l]] = 0; + for( ipc_ l = 0; l < nz_p_end; l++) mask[nz_p[l]] = 0; }else if(status == 6){ // evaluate p = sparse A^Tv - for( int l = nz_v_start - 1; l < nz_v_end; l++){ + for( ipc_ l = nz_v_start - 1; l < nz_v_end; l++){ i = nz_v[l]-1; p[i] = v[i] + v[n]; } }else if(status == 7){ // evaluate p = P^{-}v - for( int i = 0; i < n; i++) p[i] = userdata.scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = userdata.scale * v[i]; }else{ printf(" the value %1i of status should not occur\n", status); break; @@ -305,10 +305,10 @@ int main(void) { printf("%s: SLLS_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -316,9 +316,9 @@ int main(void) { } // Apply preconditioner -int prec( int n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ +ipc_ prec( ipc_ n, const real_wp_ v[], real_wp_ p[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ scale = myuserdata->scale; - for( int i = 0; i < n; i++) p[i] = scale * v[i]; + for( ipc_ i = 0; i < n; i++) p[i] = scale * v[i]; return 0; } diff --git a/src/sls/C/slst.c b/src/sls/C/slst.c index 2af39225ac..8a5474080c 100644 --- a/src/sls/C/slst.c +++ b/src/sls/C/slst.c @@ -9,9 +9,9 @@ #include "galahad_cfunctions.h" #include "galahad_sls.h" -int maxabsarray(real_wp_ a[], int n, real_wp_ *maxabs); +ipc_ maxabsarray(real_wp_ a[], ipc_ n, real_wp_ *maxabs); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -19,18 +19,18 @@ int main(void) { struct sls_inform_type inform; // Set problem data - int n = 5; // dimension of A - int ne = 7; // number of entries of A - int dense_ne = 15; // number of elements of A as a dense matrix - int row[] = {0, 1, 1, 2, 2, 3, 4}; // row indices, NB lower triangle - int col[] = {0, 0, 4, 1, 2, 2, 4}; // column indices - int ptr[] = {0, 1, 3, 5, 6, 7}; // pointers to indices + ipc_ n = 5; // dimension of A + ipc_ ne = 7; // number of entries of A + ipc_ dense_ne = 15; // number of elements of A as a dense matrix + ipc_ row[] = {0, 1, 1, 2, 2, 3, 4}; // row indices, NB lower triangle + ipc_ col[] = {0, 0, 4, 1, 2, 2, 4}; // column indices + ipc_ ptr[] = {0, 1, 3, 5, 6, 7}; // pointers to indices real_wp_ val[] = {2.0, 3.0, 6.0, 4.0, 1.0, 5.0, 1.0}; // values real_wp_ dense[] = {2.0, 3.0, 0.0, 0.0, 4.0, 1.0, 0.0, 0.0, 5.0, 0.0, 0.0, 6.0, 0.0, 0.0, 1.0}; real_wp_ rhs[] = {8.0, 45.0, 31.0, 15.0, 17.0}; real_wp_ sol[] = {1.0, 2.0, 3.0, 4.0, 5.0}; - int i, status; + ipc_ i, status; real_wp_ x[n]; real_wp_ error[n]; @@ -42,7 +42,7 @@ int main(void) { printf(" basic tests of storage formats\n\n"); printf(" storage RHS refine partial\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize SLS - use the sytr solver sls_initialize( "sytr", &data, &control, &status ); @@ -88,7 +88,7 @@ int main(void) { printf(" SLS_solve exit status = %1i\n", inform.status); } //printf("sol: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); // resolve, this time using iterative refinement control.max_iterative_refinements = 1; @@ -134,9 +134,9 @@ int main(void) { } } -int maxabsarray(real_wp_ a[], int n, real_wp_ *maxabs) +ipc_ maxabsarray(real_wp_ a[], ipc_ n, real_wp_ *maxabs) { - int i; + ipc_ i; real_wp_ b, max; max=abs(a[0]); for(i=1; ip; @@ -95,7 +95,7 @@ int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -106,7 +106,7 @@ int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian of the objective -int hess(int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess(ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata){ hval[0] = 2.0 - cos(x[0]); hval[1] = 2.0; diff --git a/src/trb/C/trbs2.c b/src/trb/C/trbs2.c index b777ef5ef1..b27d226296 100644 --- a/src/trb/C/trbs2.c +++ b/src/trb/C/trbs2.c @@ -12,15 +12,15 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -28,7 +28,7 @@ int main(void) { struct trb_inform_type inform; // Initialize TRB - int status; + ipc_ status; trb_initialize( &data, &control, &status ); // Set user-defined control options @@ -40,8 +40,8 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity real_wp_ x_l[] = {-infty,-infty, 0.}; @@ -67,11 +67,11 @@ int main(void) { printf("TRB successful solve\n"); printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -88,7 +88,7 @@ int main(void) { } // Objective function -int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun(ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -97,7 +97,7 @@ int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -108,7 +108,7 @@ int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian-vector product -int hessprod(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod(ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos( x[0] ) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); @@ -117,13 +117,13 @@ int hessprod(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod(int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod(ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata){ real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] + 2.0 * v[0] - cos(x[0]) * v[0]; @@ -148,7 +148,7 @@ int shessprod(int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } } *nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/trb/C/trbs3.c b/src/trb/C/trbs3.c index e42e459e5c..71aedfcad2 100644 --- a/src/trb/C/trbs3.c +++ b/src/trb/C/trbs3.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_trb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct trb_inform_type inform; // Initialize TRB - int status; + ipc_ status; trb_initialize( &data, &control, &status ); // Set user-defined control options @@ -22,18 +22,18 @@ int main(void) { //control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity real_wp_ x_l[] = {-infty,-infty, 0.}; real_wp_ x_u[] = {1.1,1.1,1.1}; char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 2, 1, 2, 2}; // Hessian H - int H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 2, 1, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle // Reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; @@ -86,11 +86,11 @@ int main(void) { if(inform.status == 0){ // successful return printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/trb/C/trbs4.c b/src/trb/C/trbs4.c index dd34adb23b..cd7204f564 100644 --- a/src/trb/C/trbs4.c +++ b/src/trb/C/trbs4.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_trb.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct trb_inform_type inform; // Initialize TRB - int status; + ipc_ status; trb_initialize( &data, &control, &status ); // Set user-defined control options @@ -22,8 +22,8 @@ int main(void) { //control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity real_wp_ x_l[] = {-infty,-infty, 0.}; @@ -31,11 +31,11 @@ int main(void) { char H_type[] = "absent"; // specify Hessian-vector products // Reverse-communication input/output - int eval_status, nnz_u, nnz_v; + ipc_ eval_status, nnz_u, nnz_v; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; // Set Hessian storage format, structure and problem bounds trb_import( &control, &data, &status, n, x_l, x_u, @@ -74,8 +74,8 @@ int main(void) { }else if(status == 7){ // obtain sparse Hessian-vector product real_wp_ tmp[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for(int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for(ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: tmp[0] = tmp[0] + 2.0 * v[0] - cos(x[0]) * v[0]; @@ -100,7 +100,7 @@ int main(void) { } } nnz_u = 0; - for(int j = 0; j < 3; j++){ + for(ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = tmp[j]; nnz_u = nnz_u + 1; @@ -120,11 +120,11 @@ int main(void) { if(inform.status == 0){ // successful return printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/trb/C/trbt.c b/src/trb/C/trbt.c index bfa33d091f..9d2c67d7dc 100644 --- a/src/trb/C/trbt.c +++ b/src/trb/C/trbt.c @@ -13,26 +13,26 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -44,24 +44,24 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x_l[] = {-10,-10,-10}; real_wp_ x_u[] = {0.5,0.5,0.5}; - int H_row[] = {0, 1, 2, 2, 2}; // Hessian H - int H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle - int H_ptr[] = {0, 1, 2, 5}; // row pointers + ipc_ H_row[] = {0, 1, 2, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 5}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRB trb_initialize( &data, &control, &status ); @@ -123,10 +123,10 @@ int main(void) { printf("%c: TRB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -136,13 +136,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status, nnz_v; - int nnz_u; + ipc_ eval_status, nnz_v; + ipc_ nnz_u; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRB trb_initialize( &data, &control, &status ); @@ -301,10 +301,10 @@ int main(void) { printf("%c: TRB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -314,7 +314,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -323,7 +323,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -334,7 +334,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 2.0; @@ -345,7 +345,7 @@ int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Dense Hessian -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 0.0; @@ -357,7 +357,7 @@ int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); @@ -366,13 +366,13 @@ int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for( int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for( ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] + 2.0 * v[0] - cos(x[0]) * v[0]; @@ -397,7 +397,7 @@ int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } } *nnz_u = 0; - for( int j = 0; j < 3; j++){ + for( ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; @@ -408,7 +408,7 @@ int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } // Apply preconditioner -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *userdata ){ u[0] = 0.5 * v[0]; u[1] = 0.5 * v[1]; @@ -417,7 +417,7 @@ int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Objective function -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -426,7 +426,7 @@ int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -437,7 +437,7 @@ int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = -cos(x[0]); hval[1] = 2.0; @@ -446,7 +446,7 @@ int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * v[1]; @@ -455,13 +455,13 @@ int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for( int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for( ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] - cos(x[0]) * v[0]; @@ -478,7 +478,7 @@ int shessprod_diag( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[] } } *nnz_u = 0; - for( int j = 0; j < 3; j++){ + for( ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/trb/C/trbtf.c b/src/trb/C/trbtf.c index 686c49da37..15bee1b66a 100644 --- a/src/trb/C/trbtf.c +++ b/src/trb/C/trbtf.c @@ -13,30 +13,30 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void * ); -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void * ); -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void * ); -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void * ); +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void * ); +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void * ); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void * ); -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, - const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, + const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void * ); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -48,24 +48,24 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x_l[] = {-10,-10,-10}; real_wp_ x_u[] = {0.5,0.5,0.5}; - int H_row[] = {1, 2, 3, 3, 3}; // Hessian H - int H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle - int H_ptr[] = {1, 2, 3, 6}; // row pointers + ipc_ H_row[] = {1, 2, 3, 3, 3}; // Hessian H + ipc_ H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 6}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRB trb_initialize( &data, &control, &status ); @@ -127,10 +127,10 @@ int main(void) { printf("%c: TRB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -140,13 +140,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status, nnz_v; - int nnz_u; + ipc_ eval_status, nnz_v; + ipc_ nnz_u; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRB trb_initialize( &data, &control, &status ); @@ -305,10 +305,10 @@ int main(void) { printf("%c: TRB_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -318,7 +318,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -327,7 +327,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -338,7 +338,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 2.0; @@ -349,7 +349,7 @@ int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Dense Hessian -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 0.0; @@ -361,7 +361,7 @@ int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); @@ -370,13 +370,13 @@ int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], real_wp_ u[], +ipc_ shessprod( ipc_ n, const real_wp_ x[], ipc_ nnz_v, const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for( int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for( ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 1: p[0] = p[0] + 2.0 * v[0] - cos(x[0]) * v[0]; @@ -401,7 +401,7 @@ int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } } *nnz_u = 0; - for( int j = 0; j < 3; j++){ + for( ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; @@ -412,7 +412,7 @@ int shessprod( int n, const real_wp_ x[], int nnz_v, const int index_nz_v[], } // Apply preconditioner -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *userdata ){ u[0] = 0.5 * v[0]; u[1] = 0.5 * v[1]; @@ -421,7 +421,7 @@ int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Objective function -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -430,7 +430,7 @@ int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -441,7 +441,7 @@ int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = -cos(x[0]); hval[1] = 2.0; @@ -450,7 +450,7 @@ int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * v[1]; @@ -459,14 +459,14 @@ int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Sparse Hessian-vector product -int shessprod_diag( int n, const real_wp_ x[], int nnz_v, - const int index_nz_v[], - const real_wp_ v[], int *nnz_u, int index_nz_u[], +ipc_ shessprod_diag( ipc_ n, const real_wp_ x[], ipc_ nnz_v, + const ipc_ index_nz_v[], + const real_wp_ v[], int *nnz_u, ipc_ index_nz_u[], real_wp_ u[], bool got_h, const void *userdata ){ real_wp_ p[] = {0., 0., 0.}; bool used[] = {false, false, false}; - for( int i = 0; i < nnz_v; i++){ - int j = index_nz_v[i]; + for( ipc_ i = 0; i < nnz_v; i++){ + ipc_ j = index_nz_v[i]; switch(j){ case 0: p[0] = p[0] - cos(x[0]) * v[0]; @@ -483,7 +483,7 @@ int shessprod_diag( int n, const real_wp_ x[], int nnz_v, } } *nnz_u = 0; - for( int j = 0; j < 3; j++){ + for( ipc_ j = 0; j < 3; j++){ if(used[j]){ u[j] = p[j]; *nnz_u = *nnz_u + 1; diff --git a/src/trs/C/trst.c b/src/trs/C/trst.c index 5f5ed33484..7bc6197d2c 100644 --- a/src/trs/C/trst.c +++ b/src/trs/C/trst.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_trs.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,22 +16,22 @@ int main(void) { struct trs_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 1; // dimension of A - int H_ne = 4; // number of elements of H - int M_ne = 3; // number of elements of M - int A_ne = 3; // number of elements of A - int H_dense_ne = 6; // number of elements of H - int M_dense_ne = 6; // number of elements of M - int H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle - int H_col[] = {0, 1, 2, 0}; - int H_ptr[] = {0, 1, 2, 4}; - int M_row[] = {0, 1, 2}; // row indices, NB lower triangle - int M_col[] = {0, 1, 2}; - int M_ptr[] = {0, 1, 2, 3}; - int A_row[] = {0, 0, 0} ; - int A_col[] = {0, 1, 2}; - int A_ptr[] = {0, 3}; + ipc_ n = 3; // dimension of H + ipc_ m = 1; // dimension of A + ipc_ H_ne = 4; // number of elements of H + ipc_ M_ne = 3; // number of elements of M + ipc_ A_ne = 3; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ M_dense_ne = 6; // number of elements of M + ipc_ H_row[] = {0, 1, 2, 2}; // row indices, NB lower triangle + ipc_ H_col[] = {0, 1, 2, 0}; + ipc_ H_ptr[] = {0, 1, 2, 4}; + ipc_ M_row[] = {0, 1, 2}; // row indices, NB lower triangle + ipc_ M_col[] = {0, 1, 2}; + ipc_ M_ptr[] = {0, 1, 2, 3}; + ipc_ A_row[] = {0, 0, 0} ; + ipc_ A_col[] = {0, 1, 2}; + ipc_ A_ptr[] = {0, 3}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 4.0}; real_wp_ M_val[] = {1.0, 2.0, 1.0}; real_wp_ A_val[] = {1.0, 1.0, 1.0}; @@ -44,7 +44,7 @@ int main(void) { real_wp_ c[] = {0.0, 2.0, 0.0}; char st; - int status; + ipc_ status; real_wp_ x[n]; char ma[3]; @@ -52,8 +52,8 @@ int main(void) { printf(" basic tests of storage formats\n\n"); - for( int a_is=0; a_is <= 1; a_is++){ // add a linear constraint? - for( int m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? + for( ipc_ a_is=0; a_is <= 1; a_is++){ // add a linear constraint? + for( ipc_ m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? if (a_is == 1 && m_is == 1 ) { strcpy(ma, "MA"); @@ -68,7 +68,7 @@ int main(void) { strcpy(ma, " "); } - for( int storage_type=1; storage_type <= 4; storage_type++){ + for( ipc_ storage_type=1; storage_type <= 4; storage_type++){ // Initialize TRS trs_initialize( &data, &control, &status ); @@ -225,7 +225,7 @@ int main(void) { printf("format %c%s: TRS_solve_problem exit status = %1i, f = %.2f\n", st, ma, inform.status, inform.obj ); //printf("x: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace trs_terminate( &data, &control, &inform ); diff --git a/src/trs/C/trstf.c b/src/trs/C/trstf.c index d2cab724e1..47c90ef4ee 100644 --- a/src/trs/C/trstf.c +++ b/src/trs/C/trstf.c @@ -8,7 +8,7 @@ #include "galahad_cfunctions.h" #include "galahad_trs.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -16,22 +16,22 @@ int main(void) { struct trs_inform_type inform; // Set problem data - int n = 3; // dimension of H - int m = 1; // dimension of A - int H_ne = 4; // number of elements of H - int M_ne = 3; // number of elements of M - int A_ne = 3; // number of elements of A - int H_dense_ne = 6; // number of elements of H - int M_dense_ne = 6; // number of elements of M - int H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle - int H_col[] = {1, 2, 3, 1}; - int H_ptr[] = {1, 2, 3, 5}; - int M_row[] = {1, 2, 3}; // row indices, NB lower triangle - int M_col[] = {1, 2, 3}; - int M_ptr[] = {1, 2, 3, 4}; - int A_row[] = {1, 1, 1} ; - int A_col[] = {1, 2, 3}; - int A_ptr[] = {1, 4}; + ipc_ n = 3; // dimension of H + ipc_ m = 1; // dimension of A + ipc_ H_ne = 4; // number of elements of H + ipc_ M_ne = 3; // number of elements of M + ipc_ A_ne = 3; // number of elements of A + ipc_ H_dense_ne = 6; // number of elements of H + ipc_ M_dense_ne = 6; // number of elements of M + ipc_ H_row[] = {1, 2, 3, 3}; // row indices, NB lower triangle + ipc_ H_col[] = {1, 2, 3, 1}; + ipc_ H_ptr[] = {1, 2, 3, 5}; + ipc_ M_row[] = {1, 2, 3}; // row indices, NB lower triangle + ipc_ M_col[] = {1, 2, 3}; + ipc_ M_ptr[] = {1, 2, 3, 4}; + ipc_ A_row[] = {1, 1, 1} ; + ipc_ A_col[] = {1, 2, 3}; + ipc_ A_ptr[] = {1, 4}; real_wp_ H_val[] = {1.0, 2.0, 3.0, 4.0}; real_wp_ M_val[] = {1.0, 2.0, 1.0}; real_wp_ A_val[] = {1.0, 1.0, 1.0}; @@ -44,7 +44,7 @@ int main(void) { real_wp_ c[] = {0.0, 2.0, 0.0}; char st; - int status; + ipc_ status; real_wp_ x[n]; char ma[3]; @@ -52,8 +52,8 @@ int main(void) { printf(" basic tests of storage formats\n\n"); - for( int a_is=0; a_is <= 1; a_is++){ // add a linear constraint? - for( int m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? + for( ipc_ a_is=0; a_is <= 1; a_is++){ // add a linear constraint? + for( ipc_ m_is=0; m_is <= 1; m_is++){ // include a scaling matrix? if (a_is == 1 && m_is == 1 ) { strcpy(ma, "MA"); @@ -68,7 +68,7 @@ int main(void) { strcpy(ma, " "); } - for( int storage_type=1; storage_type <= 4; storage_type++){ + for( ipc_ storage_type=1; storage_type <= 4; storage_type++){ // Initialize TRS trs_initialize( &data, &control, &status ); @@ -225,7 +225,7 @@ int main(void) { printf("format %c%s: TRS_solve_problem exit status = %1i, f = %.2f\n", st, ma, inform.status, inform.obj ); //printf("x: "); - //for( int i = 0; i < n+m; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n+m; i++) printf("%f ", x[i]); // Delete internal workspace trs_terminate( &data, &control, &inform ); diff --git a/src/tru/C/trus.c b/src/tru/C/trus.c index 66b83d6982..07560fc759 100644 --- a/src/tru/C/trus.c +++ b/src/tru/C/trus.c @@ -12,11 +12,11 @@ struct userdata_type { }; // Function prototypes -int fun(int n, const real_wp_ x[], real_wp_ *f, const void *); -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *); -int hess(int n, int ne, const real_wp_ x[], real_wp_ hval[], const void *); +ipc_ fun(ipc_ n, const real_wp_ x[], real_wp_ *f, const void *); +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *); +ipc_ hess(ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -24,7 +24,7 @@ int main(void) { struct tru_inform_type inform; // Initialize TRU - int status; + ipc_ status; tru_initialize( &data, &control, &status ); // Set user-defined control options @@ -36,13 +36,13 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1,1,1}; // start from one real_wp_ infty = 1e20; // infinity char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 2, 1, 2, 2}; // Hessian H - int H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 2, 1, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle // Set storage real_wp_ g[n]; // gradient @@ -61,11 +61,11 @@ int main(void) { printf("TRU successful solve\n"); printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -82,7 +82,7 @@ int main(void) { } // Objective function -int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun(ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -91,7 +91,7 @@ int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -102,7 +102,7 @@ int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian of the objective -int hess(int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess(ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata){ hval[0] = 2.0 - cos(x[0]); hval[1] = 2.0; diff --git a/src/tru/C/trus2.c b/src/tru/C/trus2.c index b26e84e871..cf4df7ee18 100644 --- a/src/tru/C/trus2.c +++ b/src/tru/C/trus2.c @@ -12,12 +12,12 @@ struct userdata_type { }; // Function prototypes -int fun(int n, const real_wp_ x[], real_wp_ *f, const void *); -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *); -int hessprod(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ fun(ipc_ n, const real_wp_ x[], real_wp_ *f, const void *); +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *); +ipc_ hessprod(ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -25,7 +25,7 @@ int main(void) { struct tru_inform_type inform; // Initialize TRU - int status; + ipc_ status; tru_initialize( &data, &control, &status ); // Set user-defined control options @@ -37,8 +37,8 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity char H_type[] = "absent"; // specify Hessian-vector products @@ -60,11 +60,11 @@ int main(void) { printf("TRU successful solve\n"); printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); @@ -81,7 +81,7 @@ int main(void) { } // Objective function -int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ +ipc_ fun(ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -90,7 +90,7 @@ int fun(int n, const real_wp_ x[], real_wp_ *f, const void *userdata){ } // Gradient of the objective -int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ +ipc_ grad(ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -101,7 +101,7 @@ int grad(int n, const real_wp_ x[], real_wp_ g[], const void *userdata){ } // Hessian-vector product -int hessprod(int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod(ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos( x[0] ) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); diff --git a/src/tru/C/trus3.c b/src/tru/C/trus3.c index 140c5312eb..66f01940c3 100644 --- a/src/tru/C/trus3.c +++ b/src/tru/C/trus3.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_tru.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct tru_inform_type inform; // Initialize TRU - int status; + ipc_ status; tru_initialize( &data, &control, &status ); // Set user-defined control options @@ -22,16 +22,16 @@ int main(void) { //control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity char H_type[] = "coordinate"; // specify co-ordinate storage - int H_row[] = {0, 2, 1, 2, 2}; // Hessian H - int H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle + ipc_ H_row[] = {0, 2, 1, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 0, 1, 1, 2}; // NB lower triangle // Reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; @@ -82,11 +82,11 @@ int main(void) { // Print solution details printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/tru/C/trus4.c b/src/tru/C/trus4.c index 7dfe551e8e..ecb534ab6b 100644 --- a/src/tru/C/trus4.c +++ b/src/tru/C/trus4.c @@ -6,7 +6,7 @@ #include "galahad_precision.h" #include "galahad_tru.h" -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -14,7 +14,7 @@ int main(void) { struct tru_inform_type inform; // Initialize TRU - int status; + ipc_ status; tru_initialize( &data, &control, &status ); // Set user-defined control options @@ -22,14 +22,14 @@ int main(void) { //control.print_level = 1; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements real_wp_ x[] = {1.,1.,1.}; // start from one real_wp_ infty = 1e20; // infinity char H_type[] = "absent"; // specify Hessian-vector products // Reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f; real_wp_ g[n]; real_wp_ u[n], v[n]; @@ -78,11 +78,11 @@ int main(void) { // Print solution details printf("iter: %d \n", inform.iter); printf("x: "); - for(int i = 0; i < n; i++) printf("%f ", x[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", x[i]); printf("\n"); printf("objective: %f \n", inform.obj); printf("gradient: "); - for(int i = 0; i < n; i++) printf("%f ", g[i]); + for(ipc_ i = 0; i < n; i++) printf("%f ", g[i]); printf("\n"); printf("f_eval: %d \n", inform.f_eval); printf("time: %f \n", inform.time.clock_total); diff --git a/src/tru/C/trut.c b/src/tru/C/trut.c index 0b403ebc19..2d6a02cfd9 100644 --- a/src/tru/C/trut.c +++ b/src/tru/C/trut.c @@ -13,20 +13,20 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void *); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void *); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *); -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *); -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *); -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *); -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void *); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *); +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *); +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *); +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -38,22 +38,22 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements - int H_row[] = {0, 1, 2, 2, 2}; // Hessian H - int H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle - int H_ptr[] = {0, 1, 2, 5}; // row pointers + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements + ipc_ H_row[] = {0, 1, 2, 2, 2}; // Hessian H + ipc_ H_col[] = {0, 1, 0, 1, 2}; // NB lower triangle + ipc_ H_ptr[] = {0, 1, 2, 5}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" C sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRU tru_initialize( &data, &control, &status ); @@ -112,10 +112,10 @@ int main(void) { printf("%c: TRU_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -125,13 +125,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRU tru_initialize( &data, &control, &status ); @@ -286,10 +286,10 @@ int main(void) { printf("%c: TRU_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -299,7 +299,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -308,7 +308,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -319,7 +319,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 2.0; @@ -330,7 +330,7 @@ int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Dense Hessian -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 0.0; @@ -342,7 +342,7 @@ int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); @@ -351,7 +351,7 @@ int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Apply preconditioner -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *userdata ){ u[0] = 0.5 * v[0]; u[1] = 0.5 * v[1]; @@ -360,7 +360,7 @@ int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Objective function -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -369,7 +369,7 @@ int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -380,7 +380,7 @@ int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = -cos(x[0]); hval[1] = 2.0; @@ -389,7 +389,7 @@ int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * v[1]; diff --git a/src/tru/C/trutf.c b/src/tru/C/trutf.c index 816e77d070..810653f616 100644 --- a/src/tru/C/trutf.c +++ b/src/tru/C/trutf.c @@ -13,23 +13,23 @@ struct userdata_type { }; // Function prototypes -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *); -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *); -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], const void *); -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *); +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *); +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *); -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *); -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *); -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *); -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *); +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *); +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *); -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -41,22 +41,22 @@ int main(void) { userdata.p = 4.0; // Set problem data - int n = 3; // dimension - int ne = 5; // Hesssian elements - int H_row[] = {1, 2, 3, 3, 3}; // Hessian H - int H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle - int H_ptr[] = {1, 2, 3, 6}; // row pointers + ipc_ n = 3; // dimension + ipc_ ne = 5; // Hesssian elements + ipc_ H_row[] = {1, 2, 3, 3, 3}; // Hessian H + ipc_ H_col[] = {1, 2, 1, 2, 3}; // NB lower triangle + ipc_ H_ptr[] = {1, 2, 3, 6}; // row pointers // Set storage real_wp_ g[n]; // gradient char st; - int status; + ipc_ status; printf(" Fortran sparse matrix indexing\n\n"); printf(" tests options for all-in-one storage format\n\n"); - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRU tru_initialize( &data, &control, &status ); @@ -115,10 +115,10 @@ int main(void) { printf("%c: TRU_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -128,13 +128,13 @@ int main(void) { printf("\n tests reverse-communication options\n\n"); // reverse-communication input/output - int eval_status; + ipc_ eval_status; real_wp_ f = 0.0; real_wp_ u[n], v[n]; - int index_nz_u[n], index_nz_v[n]; + ipc_ index_nz_u[n], index_nz_v[n]; real_wp_ H_val[ne], H_dense[n*(n+1)/2], H_diag[n]; - for( int d=1; d <= 5; d++){ + for( ipc_ d=1; d <= 5; d++){ // Initialize TRU tru_initialize( &data, &control, &status ); @@ -289,10 +289,10 @@ int main(void) { printf("%c: TRU_solve exit status = %1i\n", st, inform.status); } //printf("x: "); - //for( int i = 0; i < n; i++) printf("%f ", x[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); //printf("\n"); //printf("gradient: "); - //for( int i = 0; i < n; i++) printf("%f ", g[i]); + //for( ipc_ i = 0; i < n; i++) printf("%f ", g[i]); //printf("\n"); // Delete internal workspace @@ -302,7 +302,7 @@ int main(void) { } // Objective function -int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -311,7 +311,7 @@ int fun( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -322,7 +322,7 @@ int grad( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 2.0; @@ -333,7 +333,7 @@ int hess( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Dense Hessian -int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_dense( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = 2.0 - cos(x[0]); hval[1] = 0.0; @@ -345,7 +345,7 @@ int hess_dense( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + 2.0 * ( v[0] + v[2] ) - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * ( v[1] + v[2] ); @@ -354,7 +354,7 @@ int hessprod( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Apply preconditioner -int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ prec( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], const void *userdata ){ u[0] = 0.5 * v[0]; u[1] = 0.5 * v[1]; @@ -363,7 +363,7 @@ int prec( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], } // Objective function -int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ +ipc_ fun_diag( ipc_ n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -372,7 +372,7 @@ int fun_diag( int n, const real_wp_ x[], real_wp_ *f, const void *userdata ){ } // Gradient of the objective -int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ +ipc_ grad_diag( ipc_ n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ p = myuserdata->p; @@ -383,7 +383,7 @@ int grad_diag( int n, const real_wp_ x[], real_wp_ g[], const void *userdata ){ } // Hessian of the objective -int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], +ipc_ hess_diag( ipc_ n, ipc_ ne, const real_wp_ x[], real_wp_ hval[], const void *userdata ){ hval[0] = -cos(x[0]); hval[1] = 2.0; @@ -392,7 +392,7 @@ int hess_diag( int n, int ne, const real_wp_ x[], real_wp_ hval[], } // Hessian-vector product -int hessprod_diag( int n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], +ipc_ hessprod_diag( ipc_ n, const real_wp_ x[], real_wp_ u[], const real_wp_ v[], bool got_h, const void *userdata ){ u[0] = u[0] + - cos(x[0]) * v[0]; u[1] = u[1] + 2.0 * v[1]; diff --git a/src/ugo/C/ugos.c b/src/ugo/C/ugos.c index 38c17cc4af..73806a836d 100644 --- a/src/ugo/C/ugos.c +++ b/src/ugo/C/ugos.c @@ -12,7 +12,7 @@ struct userdata_type { }; // Evaluate test problem objective, first and second derivatives -int fgh(real_wp_ x, real_wp_ *f, real_wp_ *g, real_wp_ *h, const void *userdata){ +ipc_ fgh(real_wp_ x, real_wp_ *f, real_wp_ *g, real_wp_ *h, const void *userdata){ struct userdata_type *myuserdata = (struct userdata_type *) userdata; real_wp_ a = myuserdata->a; @@ -23,7 +23,7 @@ int fgh(real_wp_ x, real_wp_ *f, real_wp_ *g, real_wp_ *h, const void *userdata) return 0; } -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -32,7 +32,7 @@ int main(void) { // Initialize UGO - int status; + ipc_ status; ugo_initialize( &data, &control, &status ); // Set user-defined control options diff --git a/src/ugo/C/ugot.c b/src/ugo/C/ugot.c index bfca0c345e..d1c510e2d9 100644 --- a/src/ugo/C/ugot.c +++ b/src/ugo/C/ugot.c @@ -27,7 +27,7 @@ real_wp_ hessf(real_wp_ x){ + 2.0 * cos( a*x ); } -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -35,7 +35,7 @@ int main(void) { struct ugo_inform_type inform; // Initialize UGO - int status, eval_status; + ipc_ status, eval_status; ugo_initialize( &data, &control, &status ); // Set user-defined control options diff --git a/src/uls/C/ulst.c b/src/uls/C/ulst.c index bd43cd185a..2b0ed1fa77 100644 --- a/src/uls/C/ulst.c +++ b/src/uls/C/ulst.c @@ -9,9 +9,9 @@ #include "galahad_cfunctions.h" #include "galahad_uls.h" -int maxabsarray(real_wp_ a[], int n, real_wp_ *maxabs); +ipc_ maxabsarray(real_wp_ a[], ipc_ n, real_wp_ *maxabs); -int main(void) { +ipc_ main(void) { // Derived types void *data; @@ -19,13 +19,13 @@ int main(void) { struct uls_inform_type inform; // Set problem data - int m = 5; // column dimension of A - int n = 5; // column dimension of A - int ne = 7; // number of entries of A - int dense_ne = 25; // number of elements of A as a dense matrix - int row[] = {0, 1, 1, 2, 2, 3, 4}; // row indices - int col[] = {0, 0, 4, 1, 2, 2, 3}; // column indices - int ptr[] = {0, 1, 3, 5, 6, 7}; // pointers to indices + ipc_ m = 5; // column dimension of A + ipc_ n = 5; // column dimension of A + ipc_ ne = 7; // number of entries of A + ipc_ dense_ne = 25; // number of elements of A as a dense matrix + ipc_ row[] = {0, 1, 1, 2, 2, 3, 4}; // row indices + ipc_ col[] = {0, 0, 4, 1, 2, 2, 3}; // column indices + ipc_ ptr[] = {0, 1, 3, 5, 6, 7}; // pointers to indices real_wp_ val[] = {2.0, 3.0, 6.0, 4.0, 1.0, 5.0, 1.0}; // values real_wp_ dense[] = {2.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 6.0, 0.0, 4.0, 1.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, @@ -33,7 +33,7 @@ int main(void) { real_wp_ rhs[] = {2.0, 33.0, 11.0, 15.0, 4.0}; real_wp_ rhst[] = {8.0, 12.0, 23.0, 5.0, 12.0}; real_wp_ sol[] = {1.0, 2.0, 3.0, 4.0, 5.0}; - int i, status; + ipc_ i, status; real_wp_ x[n]; real_wp_ error[n]; _Bool trans; @@ -47,7 +47,7 @@ int main(void) { printf(" storage RHS refine RHST refine\n"); - for( int d=1; d <= 3; d++){ + for( ipc_ d=1; d <= 3; d++){ // Initialize ULS - use the gls solver uls_initialize( "getr", &data, &control, &status ); @@ -90,7 +90,7 @@ int main(void) { printf(" ULS_solve exit status = %1i\n", inform.status); } // printf("sol: "); - // for( int i = 0; i < n; i++) printf("%f ", x[i]); + // for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); // resolve, this time using iterative refinement control.max_iterative_refinements = 1; @@ -129,7 +129,7 @@ int main(void) { printf(" ULS_solve exit status = %1i\n", inform.status); } // printf("sol: "); - // for( int i = 0; i < n; i++) printf("%f ", x[i]); + // for( ipc_ i = 0; i < n; i++) printf("%f ", x[i]); // resolve, this time using iterative refinement control.max_iterative_refinements = 1; @@ -156,9 +156,9 @@ int main(void) { } } -int maxabsarray(real_wp_ a[], int n, real_wp_ *maxabs) +ipc_ maxabsarray(real_wp_ a[], ipc_ n, real_wp_ *maxabs) { - int i; + ipc_ i; real_wp_ b, max; max=abs(a[0]); for(i=1; i