00001 /*! \mainpage Documentation of libfityk internals. 00002 * 00003 * This is a documentation of source for developers. 00004 * 00005 * If you want to use libfityk in your program, first see 00006 * the namespace #fityk, where the public API is documented. 00007 * 00008 * \b directories 00009 * - src/ - fityk library (libfityk) 00010 * - src/wxgui/ - wxWidgets-based GUI 00011 * - src/cli/ - readline/gnuplot based CLI 00012 * - swig/ - bindings to libfityk 00013 * 00014 * <b>symbolic calculation of derivatives</b> 00015 * 00016 * (can be outdated) 00017 * Fityk calculates derivatives of functions symbolically. 00018 * It parses expression to AST based on struct OpTree, 00019 * calculates recursively derivatives, tries to simplify a bit all expressions 00020 * (these steps are performed in calculate_deriv()), 00021 * and then produces bytecode (AnyFormula::tree_to_bytecode()) 00022 * that can be executed by VM (AnyFormula::run_vm()). 00023 * In case of $variables, values and derivatives are always calculated together. 00024 * In case of UDFs, when using non-derivative algorithm, 00025 * it's significantly more efficient to skip calculation of derivatives, 00026 * that's what class AnyFormulaO was introduced for. 00027 * Note, that UDF bytecode is executed n times more than $variable bytecode, 00028 * where n is the number of data points, and usually n >> 1. 00029 * 00030 * \b reusability 00031 * 00032 * There are small pieces of code designed to be reusable. 00033 * They can have more liberal licence than GPL. 00034 * 00035 * - GUI input line, see: http://wxforum.shadonet.com/viewtopic.php?t=13005 00036 * - controls for input of real numbers in wxgui/fancyrc.* 00037 * (see outdated post at http://wxforum.shadonet.com/viewtopic.php?t=13471) 00038 */ 00039