Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/meantools_exp.c')
-rw-r--r--src/meantools_exp.c130
1 files changed, 0 insertions, 130 deletions
diff --git a/src/meantools_exp.c b/src/meantools_exp.c
deleted file mode 100644
index 1aca928..0000000
--- a/src/meantools_exp.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
-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.
-*/
-
-#include "meantools_exp.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "parse_file.h"
-#include "cli_parser.h"
-#include "polynomial.h"
-#include "fields.h"
-#include "grouped_polynomial.h"
-#include "idtable.h"
-
-// read command line arguments
-int tool_exp_read_args(int argc, const char* argv[], Str_Array* str_args){
- // file to read the polynomial from in flow mode
- const char* file="";
- // whether a file was specified on the command-line
- int exists_file=0;
-
- if(argc>=3){
- file=argv[2];
- exists_file=1;
- }
- read_config_file(str_args, file, 1-exists_file);
-
- return(0);
-}
-
-
-// compute the exponential of the input polynomial
-int tool_exp(Str_Array str_args){
- // index of the entry in the input file
- int arg_index;
- // list of fields
- Fields_Table fields;
- // input polynomial
- Polynomial poly;
- // exp as a polynomial
- Polynomial exp_poly;
- // list of rccs
- Id_Table idtable;
- // exp
- Grouped_Polynomial exp;
- int i,j;
-
- // parse fields
- arg_index=find_str_arg("fields", str_args);
- if(arg_index<0){
- fprintf(stderr,"error: no fields entry in the configuration file\n");
- exit(-1);
- }
- else{
- parse_input_fields(str_args.strs[arg_index],&fields);
- }
-
- // parse id table
- arg_index=find_str_arg("id_table", str_args);
- if(arg_index<0){
- fprintf(stderr,"error: no id table entry in the configuration file\n");
- exit(-1);
- }
- else{
- parse_input_id_table(str_args.strs[arg_index],&idtable, fields);
- }
-
- // parse input polynomial
- arg_index=find_str_arg("input_polynomial", str_args);
- if(arg_index>=0){
- parse_input_polynomial(str_args.strs[arg_index],&poly, fields);
- }
- else{
- fprintf(stderr,"error: no input polynomial entry in the configuration file\n");
- exit(-1);
- }
-
- // parse symbols
- arg_index=find_str_arg("symbols", str_args);
- if(arg_index>=0){
- parse_input_symbols(str_args.strs[arg_index],&fields);
- }
- else{
- init_Symbols(&(fields.symbols),1);
- }
-
- // parse identities
- arg_index=find_str_arg("identities", str_args);
- if(arg_index>=0){
- parse_input_identities(str_args.strs[arg_index],&fields);
- }
- else{
- init_Identities(&(fields.ids),1);
- }
-
- // exp(V)
- polynomial_exponential(poly,&exp_poly, fields);
- // grouped representation
- group_polynomial(exp_poly, &exp, idtable, fields);
- free_Polynomial(exp_poly);
- free_Polynomial(poly);
-
- // no denominators
- for(i=0;i<exp.length;i++){
- for(j=0;j<exp.coefs[i].length;j++){
- exp.coefs[i].denoms[j].power=0;
- }
- }
-
- grouped_polynomial_print(exp,'%','%');
-
- // free memory
- free_Fields_Table(fields);
- free_Id_Table(idtable);
- free_Grouped_Polynomial(exp);
- return(0);
-}