diff options
Diffstat (limited to 'src/numkondo.c')
| -rw-r--r-- | src/numkondo.c | 27 | 
1 files changed, 17 insertions, 10 deletions
diff --git a/src/numkondo.c b/src/numkondo.c index 0568861..91e6be2 100644 --- a/src/numkondo.c +++ b/src/numkondo.c @@ -1,5 +1,5 @@  /* -Copyright 2015 Ian Jauslin +Copyright 2015-2022 Ian Jauslin  Licensed under the Apache License, Version 2.0 (the "License");  you may not use this file except in compliance with the License. @@ -86,12 +86,6 @@ int read_args_numkondo(int argc,const char* argv[], Str_Array* str_args, Numkond    // whether a file was specified on the command-line    int exists_file=0; -  // if there are no arguments -  if(argc==1){ -    print_usage_numkondo(); -    exit(-1); -  } -    // defaults    // display entire flow    (*opts).display_mode=DISPLAY_NUMERICAL; @@ -193,6 +187,8 @@ int numflow(Str_Array str_args, Numkondo_Options opts){    Grouped_Polynomial flow_equation;    // whether or not to use mpfr floats    int mpfr_flag=0; +  // postprocess flow equation +  Grouped_Polynomial postprocess_flow_equation;    // set mpfr defaults    if(opts.mpfr_prec!=0){ @@ -205,7 +201,7 @@ int numflow(Str_Array str_args, Numkondo_Options opts){    } -  // parse id table +  // parse labels    arg_index=find_str_arg("labels", str_args);    if(arg_index<0){      fprintf(stderr,"error: no labels entry in the configuration file\n"); @@ -225,6 +221,16 @@ int numflow(Str_Array str_args, Numkondo_Options opts){      char_array_to_Grouped_Polynomial(str_args.strs[arg_index], &flow_equation);    } +  // parse postprocess operation +  arg_index=find_str_arg("postprocess_operation", str_args); +  if(arg_index>=0){ +    char_array_to_Grouped_Polynomial(str_args.strs[arg_index], &postprocess_flow_equation); +  } +  else{ +    init_Grouped_Polynomial(&postprocess_flow_equation,1); +  } + +    // initial conditions    // check they were not specified on the command line    if(opts.eval_rccstring.length==-1){ @@ -252,17 +258,18 @@ int numflow(Str_Array str_args, Numkondo_Options opts){    }    if(mpfr_flag==0){ -    numerical_flow(flow_equation, init_cd, labels, opts.niter, opts.display_mode); +    numerical_flow(flow_equation, init_cd, postprocess_flow_equation, labels, opts.niter, opts.display_mode);      free_RCC(init_cd);    }    else{ -    numerical_flow_mpfr(flow_equation, init_cd_mpfr, labels, opts.niter, opts.display_mode); +    numerical_flow_mpfr(flow_equation, init_cd_mpfr, postprocess_flow_equation, labels, opts.niter, opts.display_mode);      free_RCC_mpfr(init_cd_mpfr);    }    // free memory    free_Labels(labels); +  free_Grouped_Polynomial(postprocess_flow_equation);    free_Grouped_Polynomial(flow_equation);    return(0);  }  | 
