Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/meantools.c')
-rw-r--r--src/meantools.c116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/meantools.c b/src/meantools.c
new file mode 100644
index 0000000..f45c376
--- /dev/null
+++ b/src/meantools.c
@@ -0,0 +1,116 @@
+/*
+Copyright 2015 Ian Jauslin
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+/*
+meantools
+
+Utility to perform various operations on flow equations
+
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+
+// pre-compiler definitions
+#include "definitions.cpp"
+
+// grouped representation of polynomials
+#include "grouped_polynomial.h"
+// command line parser
+#include "cli_parser.h"
+// parse input file
+#include "parse_file.h"
+// arrays
+#include "array.h"
+// string functions
+#include "istring.h"
+// tools
+#include "meantools_exp.h"
+#include "meantools_deriv.h"
+#include "meantools_eval.h"
+
+#define EXP_COMMAND 1
+#define DERIV_COMMAND 2
+#define EVAL_COMMAND 3
+
+// read cli arguments
+int read_args_meantools(int argc,const char* argv[], Str_Array* str_args, Meantools_Options* opts);
+// print usage message
+int print_usage_meantools();
+
+
+int main (int argc, const char* argv[]){
+ // string arguments
+ Str_Array str_args;
+ // options
+ Meantools_Options opts;
+
+ // read command-line arguments
+ read_args_meantools(argc,argv,&str_args, &opts);
+
+ switch(opts.command){
+ case EXP_COMMAND: tool_exp(str_args);
+ break;
+ case DERIV_COMMAND: tool_deriv(str_args,opts);
+ break;
+ case EVAL_COMMAND: tool_eval(str_args,opts);
+ break;
+ }
+
+ //free memory
+ free_Str_Array(str_args);
+ return(0);
+}
+
+
+// parse command-line arguments
+int read_args_meantools(int argc,const char* argv[], Str_Array* str_args, Meantools_Options* opts){
+
+ // if there are no arguments
+ if(argc==1){
+ print_usage_meantools();
+ exit(-1);
+ }
+
+ if(str_cmp((char*)argv[1],"exp")==1){
+ (*opts).command=EXP_COMMAND;
+ tool_exp_read_args(argc, argv, str_args);
+ }
+ else if(str_cmp((char*)argv[1],"derive")==1){
+ (*opts).command=DERIV_COMMAND;
+ tool_deriv_read_args(argc, argv, str_args, opts);
+ }
+ else if(str_cmp((char*)argv[1],"eval")==1){
+ (*opts).command=EVAL_COMMAND;
+ tool_eval_read_args(argc, argv, str_args, opts);
+ }
+ else{
+ print_usage_meantools();
+ exit(-1);
+ }
+
+ return(0);
+}
+
+// print usage message
+int print_usage_meantools(){
+ printf("\nusage:\n meantools exp <filename>\n meantools derive [-d derivatives] -V <variables> <filename>\n meantools eval -R <rccs> <filename>\n\n");
+ return(0);
+}
+
+
+