Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jauslin <ian@jauslin.org>2022-06-14 09:26:07 +0200
committerIan Jauslin <ian@jauslin.org>2022-06-14 09:46:36 +0200
commit3f0510629e422e979b57d3f93791937912a4183a (patch)
treebf2589b2689044261b0cd4d9e6b3082194fdd9e9 /src/fields.h
parent469bdc80712dbf9c12562059dc4594620b59a076 (diff)
Update to v1.5.HEADmaster
The update to version 1.5 is rather substantial, and introduces some minor backward-incompatibilities: * The header "#!symbols" has been replaced by "#!virtual_fields" * Multiplying polynomials using the '*' symbol is no longer supported (or, rather, the symbolic capabilities of meankondo were enhanced, and the syntax has been changed). * 'meantools exp' has been removed (its functionality is now handled by other means) * 'meantoolds derive' has been replaced by 'meantools differentiate' * The symbolic capabilities were enhanced: polynomials can now be multiplied, added, exponentiated, and their logarithms can be taken directly in the configuration file. * The flow equation can now be processed after being computed using the various "#!postprocess_*" entries. * Deprecated kondo_preprocess. * Compute the mean using an LU decomposition if possible. * More detailed checks for syntax errors in configuration file. * Check that different '#!group' entries are indeed uncorrelated. * New flags in meankondo: '-p' and '-A'. * New tool: meantools expand. * Improve conversion to LaTeX using meantools-convert * Assign terms randomly to different threads. * Created vim files to implement syntax highlighting for configuration files. * Multiple bug fixes
Diffstat (limited to 'src/fields.h')
-rw-r--r--src/fields.h58
1 files changed, 47 insertions, 11 deletions
diff --git a/src/fields.h b/src/fields.h
index b6f05c2..7b7a07a 100644
--- a/src/fields.h
+++ b/src/fields.h
@@ -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.
@@ -21,6 +21,9 @@ limitations under the License.
#include "types.h"
+
+// Fields_Table
+
// init
int init_Fields_Table(Fields_Table* fields);
int free_Fields_Table(Fields_Table fields);
@@ -33,6 +36,8 @@ int is_fermion(int index, Fields_Table fields);
int is_noncommuting(int index, Fields_Table fields);
+// Identities
+
// init
int init_Identities(Identities* identities,int size);
int free_Identities(Identities identities);
@@ -57,25 +62,29 @@ int resolve_ids(Polynomial* polynomial, Fields_Table fields);
int int_array_is_subarray_noncommuting(Int_Array input, Int_Array test_array, Fields_Table fields);
+// Virtual_fields
+
// init
-int init_Symbols(Symbols* symbols,int size);
-int free_Symbols(Symbols symbols);
+int init_Virtual_fields(Virtual_fields* virtual_fields,int size);
+int free_Virtual_fields(Virtual_fields virtual_fields);
// resize
-int resize_symbols(Symbols* symbols,int new_size);
+int resize_virtual_fields(Virtual_fields* virtual_fields,int new_size);
// copy
-int symbols_cpy(Symbols input, Symbols* output);
-int symbols_cpy_noinit(Symbols input, Symbols* output);
+int virtual_fields_cpy(Virtual_fields input, Virtual_fields* output);
+int virtual_fields_cpy_noinit(Virtual_fields input, Virtual_fields* output);
-// append an element to a symbols
-int symbols_append(int index, Polynomial expr, Symbols* output);
-int symbols_append_noinit(int index, Polynomial expr, Symbols* output);
+// append an element to a virtual_fields
+int virtual_fields_append(int index, Polynomial expr, Virtual_fields* output);
+int virtual_fields_append_noinit(int index, Polynomial expr, Virtual_fields* output);
-// concatenate two symbolss
-int symbols_concat(Symbols input, Symbols* output);
+// concatenate two virtual_fields
+int virtual_fields_concat(Virtual_fields input, Virtual_fields* output);
+// Groups
+
// init
int init_Groups(Groups* groups,int size);
int free_Groups(Groups groups);
@@ -98,5 +107,32 @@ int groups_concat(Groups input, Groups* output);
int find_group(int index, Groups groups);
+// Variables
+
+// allocate memory
+int init_Variables(Variables* variables,int size);
+// free memory
+int free_Variables(Variables variables);
+
+// resize
+int resize_variables(Variables* variables,int new_size);
+
+// copy
+int variables_cpy(Variables input, Variables* output);
+int variables_cpy_noinit(Variables input, Variables* output);
+
+// append an element to a variables collection
+int variables_append(Char_Array var_name, Tree symbol_tree, Variables* output);
+int variables_append_noinit(Char_Array var_name, Tree symbol_tree, Variables* output);
+
+// concatenate two variables collections
+int variables_concat(Variables input, Variables* output);
+
+// find a variable matching a var_name
+int variables_find_var(Char_Array name, Variables variables, Tree* output);
+
+// add a polynomials as a new named variable
+int add_polynomial_to_variables(char* name, Polynomial polynomial, Variables* variables);
+
#define FIELDS_H_DONE
#endif