Computator.NET is a special kind of numerical software that is fast and easy to use but not worse than others feature-wise. It's features include: - Real and complex functions charts - Real and complex calculator - Real functions numerical calculations including different methods - Over 107 Elementary functions - Over 141 Special functions - Over 21 Matrix functions and operations - Scripting language with power to easy computations including matrices - You can declare your own custom functions with scripting language
The most stable and the most optimized Computator.NET release yet!
Quick hotfix to the most stable Computator.NET release yet!
This is the first release marked as stable in Computator.NET history. Although there are still bugs, we are more and more confident that we are releasing SOLID and usable software. With focus on user-experience we delivered better look and feel, especially in high DPI scenarios and the most requested features. Bugs and inconsistencies were fixed and "quirks" removed. We have also started nonofficial support for Linux and Mac OS X.
This release is a another milestone in Computator.NET history. After moving to github we encountered dozens of bugs, some really serious and only a few new features requests. So it was obvious that our work should focus on bugfixing and making it more stable. There are over 50 serious fixed bugs and even more less serious, some are not fixed yet but included in BUGS file. In addition there are some nice new features - most of them are focused on making TSL the standard language for computations - which itself can be seen as bugfixing TSL desgin.
+ Bug reporting now opens link to github project issues page
+ ScientificNumericUpDown supports now NumericalOutputNotation from settings
+ TSL finally supports anything with valid variable format raised to any power with superscript notation (before it worked only for x,y,z,i now it works for anything that looks like a variable or constant eg _niceVariableNameᶜᵒˢ⁽ˣ⁾˙ˢⁱⁿ⁽ʰᵃˣˣˣˣ⁾ is working just like it should) (it enabled us to simplify a lot of code in other places)
+ TSL handles now full mathematical multiplying notation like 2x means 2*x
+ Chart3D and ComplexChart now supports printing and printpreview
+ All charts now use the same SaveImage dialog with option for many different image formats, which makes exporting a chart nice experience
+ New special symbols for better looking exponents
+ You can now use functions with many parameters in exponents (added comma superscript symbol compatible even with Win XP)
+ GSL can now be initialized with second method if first doesnt work
+ Added exception handling for GSL initialization and logging all the errors
+ Installer will now always install Cambria font, Consolas font and TSL examples files
+ EditChart3DWindow can now edit chart area values properties
+ GSL updated to version 2.1
+ Added solve(m) function for solving linear equations in matrix representation
+ Added LU, QR, Cholevsky, Evd, Svd and GramSchmidt matrix decompositions
+ Added more TSL examples including matrix solving and decompositions
+ Introduction of SharedViewState representing shared state of application for various uses
+ Finally introduced async and await for longer running background tasks like ComplexChart drawing - this fixes UI freezing
+ ExponentMode menu command works now for AvalonEdit code editor too
+ Installer now includes .NET 4.0 KB2468871 update for async and await support on .NET 4.0
+ Due to compatibility issues installer now includes all needed redistributables instead of just downloading them
= Fixed bug in binding exponent mode from edit menu to exponent mode in code editor
= Fixed bug in chart edit property window causing ComplexChart to not redraw after changes
= Fixed bug in ComplexChart GreaterIsLighter and GreaterIsDarker methods when NoCountourLines selected causing pitch black chart in GreaterIsLighter mode and not accurate chart in GreaterIsDarker mode
= Fixed visual bug in polish version of "for values" label (wrong placement)
= Fixed minor bugs and typos in dialogs like about, features etc (for english and polish versions)
= Translated all previously missing elements in polish version
= Fixed very important bug in ScriptingExtensions - all outputs in application are now culture invariant (not being culture invariant before caused some output in non-english versions to include comma (,) instead of dot (.) for decimal separator which caused bugs when output was used in input - because we always use decimal dot (.) in TSL for decimal separation)
= Fixed important bug in ToMathString(this double) method from ScriptingExtensions, in MathematicalNotation exponent was in format just like in engineering notation (eg we had 10⁺⁰²³ instead of just 10²³)
= Fixed important bug with matrix unable to be created if it had any sqrt(real) functions inside (this was caused due to sqrt(real) returning dynamic, fixed by creating new matrix construction method)
= Fixed yet another (this time minor) bug in output - i or -i was resolving to 1·i or -1·i instead of just i or -i
= TSL Compiler's regular expressions are now compiled at the start of the program, evaluation of user's code and expressions should work a lot faster now
= Fixed bugs in root(x,n) and pow(x,y) functions, now they can return complex even for real parameters and root is finally working correcly for odd n
= NativeCompiler refactorization, errors and warnings translated to polish
= 'dynamic' functions (sqrt(real), root(n,x) and pow(x,y)), generic parameters/arguments and 'params' parameters now appear correctly in autocomplete
= Minor bufixes and changes to TSL Compiler allowing more freedom to user in defining things
= Bug in read() functions fixed - input is now CultureInvariant just like it should be
= Moved Localization to Computator.NET.DataTypes, which makes localization of all the Computator.NET components a lot easier
= Fixed bug in plot(f(x,y)) TSL function which made user unable to change chart area values (xmin,xmax, ymin, ymax)
= Unified Chart (edit) menus in GUI and scripting (they are now inside their own class, reusable), removed any code redundancies and errors (in chart3d in scripting export was generating invalid names)
= Cleanup for Chart3D
= Fixed bug in ScientificNumeriUpDown with Value sometimes over decimal.MaxValue or under decimal.MinValue
= Fixed bug with GSL library not loading - installer will now always install Visual C++ Redistributable for Visual Studio 2013 (MSVCRT120.DLL, used by gsl.dll and cblas.dll) if needed
= Fixed bug with application not starting on Windows XP because of icon -> now icon is not compressed, still 256x256
- Removed option to select a rectangular area using the mouse right click over Chart2D
= Fixed important bug in ExpressionEvaluator - lambda expressions were interpreted as implicit functions which was preventing user from using them
= Fixed bug in autocomplete, it was comparing substring including whole signature of function, now only uses name
= Fixed important bugs causing autocomplete to not show in exponent
= Fixed some bugs in HypergeometricU, Hypergeometric1F1 special function
- Removed unused argument n from function EllipticD(φ,x)
= Mathieu functions should be a lot faster now, they are called directly now as a functions - not by passing a reference interop struct type
= TSL now supports whitespace characters in exponent
= Fixed bug in TSLCompiler related to multiple nested parenthesis with exponents
= Fixed bug ctrl+T does not create a new tab in scripting and custom functions when focus is on code editor
= Fixed bug with localization - now even top menu is reloaded if language has been changed
= Fixed all bugs and enhanced domain for En(n,x) function
= Introduced ∞ symbol for Infinity
= Fixed all known bugs with changing editor type with opened documents
= Fixed minor bugs in directory tree / solution explorer
= All windows and dialogs of app are now behaving consistently with what they are (resizing, icons, look etc)
= MVP pattern implemented for UI
= Command pattern implemented for Top Menu and Toolbar Menu
= GSL is now compiled with Visual Studio 2015 Update 2, installer includes Visual C++ Redistributable for Visual Studio 2015 Update 2
= Fixes in functions categories, fixed inconsistency between functions.xml signatures and assembly
This release is a huge milestone in Computator.NET history, first we moved to github and made our code open source and avalaible to everyone, second we removed all the annoying limitations, inconsistencies and bad user experiences.
Computator.NET, 2014-2016, Paweł Troka, [email protected]
= TSL examples now are installed in 'my documents' folder and used from there (this resolves issues related to app not having admin right to write in program files dir)
= Fixed bugs related to changing editor while having opened tabs in code editor
= There is no more explicit mode you have to set for everything except scripting(real, complex, 3d) - application now can deduce mode based on your expressions, if you really want you can still force mode by choosing one in status bar of app
+ Added possibility to change font and fontsize of scripting editors and expressiontextbox
+ New revamped and refreshed user interface, revamped top menu and added fast buttons with images
+ Added a lot of new options to top menu, like edit menu and keyboard shortcuts
+ Added a possibility to choose output notation (mathematical or enginnering)
= Unified output model everywhere (same fonts, same output number formatting, got rid of any unconsistency)
= Native methods cleanup - removed unused and let them be together in one class NativeMethods
+ Standarize output everywhere so it is consistent mathematical or engineering notation - eg 2⁻¹⁰⁰ or 2E-100 (also included in settings)
= Unified autocomplete for both expressions and scripting (same design and items, customizable formats and fonts (with exception of AvalonEdit code editor)
+ Added possibility to change autocomplete items format (return type, type of arguments) and fonts (size, family) for scripting and expressions
= Refreshed installer with option to upgrade and with better support for needed redistributables and possibly less bugs
= Fixed bug in KroneckerProduct(M1,M2,..) function
= GSL library errors no longer crashes whole application - custom made error handling for GSL library throws exceptions instead
+ Scripting and custom functions code editor is now a real text editor with functions like save, tabs, load, solution, directory etc. more tabs and files
+ New tests for Elementary and Special Functions covering over 100% of code allowing to fix all bugs in these functions
= Fixed bugs in functions: SphericalBesselJ(n, x), SphericalBesselYn(n, x), MathieuBn(n,q), ModifiedSphericalBesselIn(n,x), ModifiedSphericalBesselKn(n,x), EllipticΠ(k,n), Coupling3j, Coupling6j, CouplingRacahW, Coupling9j, LegendreP(int l, int m, double x), SphericalLegendreP(int l, int m, double x), ChebyshevT(n,x), HermiteH, HermiteHe, ZernikeR(n,m,ρ), HydrogenicR, CoulombGprime, CoulombFprime, FermiDiracF0(x,b), gammaQ(a,x), HypergeometricU(m,n,x), HypergeometricU(a,b,x), DoubleFactorialBinomialCoeffPermutations(n), EllipticΠ(k,n), EllipticΠ(φ,x,n), inverseErf(y), inverseErfc(y), LCM(a,b)
+ New functions for creating matrices: IdentityMatrix(), ZerosMatrix(), OnesMatrix()
+ New operations for matrices KroneckerSum(M1,M2,...), DirectSum(M1,M2,...), HermitianTranspose(M)
+ New functions for matrices isUnitary(M), isIdentity(m), isHermitian(m), isSymmetric(M), ker(M)
= Fixed bugs in matrx operations PointwiseMultiply, PointwiseDivide
+ New function for integers BitwiseDotProduct(a,b)
- Removed HypergeometricU due to a lot of erros in implementation
- Removed function logGamma due to a lot of erros in implementation
+ Added error higlighting to scripting for faster finding of errors in your code
= All delegates from SpecialFunctions and ElementaryFunction have been changed to normal functions for better control of data flow and more information for autocomplete
= A lot of cleanup and refactorings in NumericalCalculations
+ All methods from NumericalCalculations exposed in API in scripting and expressions (you can draw now eg integrate of function from a to x or derivative or roots of function)
+ Merged with new autocomplete porting all changes, it gives new look and fixes some minor bugs
= Numerical calculations tab got a nice refresh of functionality and design
+ Scripting and custom functions got something like solution explorer / directory explorer where you can create new files, edit, rename them in your working directory. You can change this directory, load a lot of files, basically it feels like having a solution exploer like this one in VisualStudio
+ Custom functions got error checking and highlighting just like scripting
= Optimized exceptions and handling within evaluation and compilation
= Total rebuild of parsing and compilation phases, all work is now on TSL cross compiler and mode is unified for both scripting and expressions (this causes exponents to work even in scriptng now and unifies TSL programming model but can be dangerous and let to a lot of bugs (still needs testing))
+ Added implicit functions to charts (you can now write e.g. x²+y²=3 and you will get implicit function chart)
= Fixed situation from previous version when
+ Added new settings window with functionality enabling keeping a lot of user preferences
= Huge source code refactorings and optimizations including rebuild from scratch evaluation and compilation
= Changed Accord.Math library to version 3.0.2
= Changed ScintillaNET library to version 3.5.1
= Changed MathNet.Numerics libary to version 3.7.0
- Dropped support of AForge and AForge.Math libraries
+ Added a possibility to choose between AvalonEdit based code editor and Scintilla based (also in settings)
= Changed colors and looks of scintilla based code editor
= Scintilla based code editor returns to default code editor
+ Autocomplete now works in expression in exponent mode too (even inserting)
= Sort alphabeticaly option for expression text box move to settings
+ Added possibility (in settings) to change tooltips representation to within window or even switch them off
= GNU Scientific Library v1.16 native libraries (both x86 and x64) are now embedded within .exe file (it fixes a lot of bugs related to native C function LoadLibrary and is more elegant solution to the problem of having native libraries, also we dont need to include in the installer Visual C++ Redistributable Packages for msvcrt120.dll)
+ Added RiemannZeta(z) special function for complex z
+ Added PolyLog(n,x) special function
+ Added Ti(x) function (inverse tangent integral)
+ Added new code editor based on AvalonEdit
+ Added local functions for TSL, you can write: function niceFunction(real x, real y) = x·sin(y)+y·cos(x); and use niceFunction just like an ordinary function anywhere in the scope
+ Added TSL tutorials on files input/output, vectors and matrices, functions and plotting
+ Added logs functionality to application, from now on every error is written to log file
= Fixed all bugs related to autocomplete in scripting (it was working really poorly before - no functions, not working after dot symbol etc)
= Changed Meta.Numerics library to version 3.0.0
= Changed Accord.Math library to version 2.14
= Changed MathNet.Numerics libary to version 3.6.0
= Fixed regularized incomplete gamma - gammaQ(a,x), domain extended to a<=0
+ Added new option of customizing chart area - when right mouse button is pressed you can slide chart anywhere you want
= Fixed X/Y ratio misscalculation which occured in 2D mode
= Changed zooming algorithm in chart2d to custom well thought and designed algorithm (now zooming in and zooming out by using mouse scroll should be much more comfortable)
+ Added functions abs(x) and abs(z) returning absolute value
= Fixed very important bug (reported by my friend Vojtech) in evaluating expressions with exponents containing many nested parenthesis (e.g. (10²·x)/(10-6·x²+(25-x²)²+10·(25-x²)) ) non-balancing parenthesis was causing errors or calculations on wrong functions
= Fixed the same bug as above in division of integers (to always return correct double)
= Fixed small visual bug in main GUI window
+ Added 9 new special functions called "Test functions for optimization" including Ackley's functions, Rosenbrock functions, Matyas function, Three-hump camel function, Bohachevsky 1 function, Himmelblau function and drop wave function
= Changed MathNet.Numerics library to newest version 3.2.3 and recoded some parts of code specific to older version of this library
= Changed compiler to Roslyn (however dynamic compiler for scripting and functions building stays the same as it was due to compatibility)
= Optimized pow (power) function for matrices
= Fixed all known bugs related to Chart 3D control (those related to changing options of this chart, those related to not showing some functions and many more)
+ Added new type of 3d chart - surface chart and made it default chart 3d type
= Fixed bugs related to chart 3d axes labels (e.g. showing them without a function, not refreshing etc)
- Removed all obsolete code in chart 3d related classes making a lots of cleanup and optimization - rectored some code and optimized some routines (still chart 3d class need more cleanup)
+ Added few new tutorials to TSL scripting language
= Redesigned a little ExpressionTextBox look
= Redesigned whole calculator tab for better look and user experience
+ Calculator now support 3d mode (f(x,y) functions)
= All elementary and special functions generic wrappers rewritten from scratch, changed all template functions to overload functions to fix some anoying bugs like sin(1) giving an exception (before you had to write sin(1.0), now it's fixed)
+ Updated "thanks to" dialog lists all used libraries and contributors to project
= Fixed and standarized al I/O formats to be the same for complex numbers and matrices having complex numbers, now everywhere you will have complex numbers in format a+bi and real numbers with standar decimal dot (.) (before some parts of app used (a,b) for complex numbers while other parts used a+bi)
= Fixed bug with Ein special function causing this function to not evaluate and throw exception
= Little tweaking done to about dialog, updated count of elementary, special and matrix functions
= Fixed bugs in Brent's function root finding method
+ Added Broyden's root finding method
= Redesigned and fixed some visual bugs in calculator and numerical calculations tabs
= Fixed bug in centered five point method for derivative calculation causing it to return wrong values
= Fixed bug in all derivative methods of not taking into account order of derivative
- Removed functions BesselJν2(ν,x) and BesselYν2(ν,x) cause they were bugged and didnt provide any additional accuracy over old ones (BesselJν(ν,x) and BesselYν(ν,x))
= Fixed bug in LegendreH3D(l,λ,η) function causing whole app to crash for some arguments
= Fixed inaccuracy in ConicalP(μ,λ,x) function for some arguments
= Fixed minor bug in scaling when one of the function of chart2d had no values
= Fixed bugs in SphericalConicalP(l,λ,x) and CylindricalConicalP(l,λ,x) for x=0.0 crashing the whole app
- Removed faddeeva(x) function because of being inaccurate (fadeeva(z) of course stays and is accurate)
= Fixed bugs in Pochhammer(a,x) and PochhammerRelative(a,x) special functions terminating whole app
+ Added Math functions calculation speed test benchmark
= Fixed all untranslated fragments in Polish version
+ Added new "Transformations" feature with ability to transform data from Charts using fourier/hartley/hilbert/cosine/sine discrete transforms
+ Added new menus "Functions" and "Constants" to top menu with categorized listing of all the functions and constants supported by application
= Fixed annoying bug in ExpressionTextBox causing losing focus when writing an expression and ToolTip shows up (tooltip was stealing focus)
= Fixed bug causing toolTips to not resizing correctly
= Fixed very annoying bugs of losing focus to Chart2D and Chart3D even when writing an Expression when mouse went on chart2d or chart3d (used MessageFilter of events to fix this)
= Fixed bugs in BesselJνZeros(ν, s) and logBesselKν(ν, x) function causing whole app to crash for negative ν values
= Changed signature of some methods from method(s) to method(x) (methods with "Zeros" sufix, eg. AiZeros(s) got changed to AiZeros(x))
= Fixed bug in Chart Area Values causing them to not refresh with Chart mouse scroll / mouse wheel events
+ Added new library Accord.Math v2.13.1
+ Added new special functions Owen's T function OwenT(h, a) and OwenT(h, a, ah)
+ Added new special function Gabor 2D and complex versions
+ Added 4 new integration methods: Monte Carlo method, non-adaptive Gauss–Kronrod method, infinity-adaptive Gauss–Kronrod method and Romberg's method
+ Thanks to my friend Vojtech Mankowski added new language to application - Czech language, translation done by Vojtech Mankowski ([email protected])
= Fixed very old and annoying bug related to division of integers return integer, now it returns always double so you would not have 3/2=0, but 3/2=1.5
+ New exponent mode, now by using key shortcut LeftShift+6 (^ sign) you enter exponent mode, where you can write your exponent, eg 2^sin(x) becames 2ˢⁱⁿ⁽ˣ⁾, you can end writing in exponent simply by pressing LeftShift+6 (^ sign) again or by mouse double click in expression textbox
= Application now uses local stored Cambria 6.81 font, so results and expressions will look beautiful even on Windows XP
+ Added chart 3D, chart of functions of two variables - f(x,y)
= More modularization - whole Charting namespace is exported as dll library
+ Added new types to scripting language - array() for constant size arrays and list() for list which can change size thanks to list.Add(..) method
+ Added new type to scripting language - vector<T>(), vector(a,b,c,...) - for vectors like in math or physics, they work well with matrix types
+ Added new plot functions to scripting plot is overloaded functios for plotting things in all different kinds of format (arrays, lists, functions)
+ Added an option to edit all properties of chart to all charts
= All ToCode() functions changed to compile-time constant fields to get better start-time performance
= Completely rewritten all code for evaluation (with split to 5 classes) to give way better performance in charting, calculations and scripting
= Some of the work on the start is done asynchronously in the background now to give better start time performance
+ Added support for complex type matrices (earlier matrices had to be real numbers only)
= Rewritten all code for matrix operations and matrix functions to support complex matrices and changed library for matrix calculations and matrix types from Meta.Numerics to MathNET.Numerics
= Fixed some really nasty bugs in scripting which ones sometimes where ommitting user code errors and instead gave old assembly containing the last compiled code without errors
+ Added possibility to change points size for real chart in points mode
+ Added PointwiseMultiply(matrix1,matrix2,..) and PointwiseDivide(matrix1,matrix2,..) matrix operations to scripting language
+ Added file handling to scripting language - you can save your calculations to files now and read from files if you want using FileReader() and FileWriter() functions
= Much faster complex chart drawing, now it isnt allocating new memory every time you redraw chart
= Some improvements in console output and objects output (show and write functions), now e.g. matrix output is much better to read
= fixed bug in HurwitzZeta function for some arguments terminating whole app
= Fixed clear chart button not working for complex chart
= Refactored some code, classes for charts now implements common IChart interface
+ Added X/Y ratio information to show how close to equal axes is your chart
+ Added quality trackbar to allow users to set quality of charts (worse quality means better performance)
= Fixed some untranslated fragments in Polish version
= Changed line thickness in real chart to 2px instead of 1px
+ Added possibility to change line thickness for real chart
= Fixed errors terminating whole app for some Mathieu radial functions parameters
= Fixed bug causing whole app to not work on Windows XP (added reference to System.Core.dll) (thanks to Kordian Czyżewski for reporting that very important bug)
+ Added full errors reporting support for entered formulas and scripts (now you can see all details why you got bug instead of generic "error in expression")
= Changed default dot symbol in expression text box from '·' to '⋅', because of lack of full unicode support on Windows XP (it was printed in XP as squere box - missing symbol)
+ First official beta release for closed beta testing
+ Added console output for scripting
+ Added posibility of using reference in Troka Scripting Language (operator &, see examples)
= Fixed some mistakes in event handlers and behaviours of complex chart
= Fixed interface errors and mistakes in design
- Removed posibility to import and export data (this feature needs rework)
= Redesigned some parts of GUI
+ First official beta release for closed beta testing
+ New method for finding root of a function - Brent's method
+ New method for numerical integration - double exponential transformation method
+ Added all missing special functions from GNU Scientific Library (even LogGamma(z), ConicalFunction, Pochhammer symbol, Double factorial and few more)
= Fixed errors in calculations hypergeometric functions, added bounds checking
+ Added more matrix operations and functions (e.g. Kronecker product, trace, determinant, rank)
+ Scripting with new scripting language for easy and fast computations including matrices
+ Ability to create custom functions using scripting language
+ A lot of matrices related features in scripting (basic operations and functions on matrices)
+ Added nearly all special functions from Gnu Scientific Library (except for a few that are hard to implement)
= Fixed bounds checking for most of used functions (still working on it) - functions will now returns NAN (not a number) rather then throwing an exceptions for wrong arguments
= Fixed errors in calculations Bessel and Euler functions
+ New library for special functions - GNU Scientific Library (GSL)
+ Added all special and elementary functions, orthogonal polynomials from Meta.Numerics library
+ Added a lot of special functions implemented in GNU Scientific Library v1.15
+ New icon
+ First official non-public release
= Fixed all known bugs, even those caused by Microsoft Chart control
+ Added most of well known elementary functions and a majority of special functions from Meta.Numerics library
+ New auto complete menu for expression text box based on AutocompleteMenu.dll library from codeproject.com