This is a command line C++ code which compiles and builds using gnu g++. It has scientific notation, scientific functions, complex integration including path integrals, and loops with tests. User defined functions are strings. A variable may simultaneously represent a scalar, an array, and a string. Arrays up to ten dimensions are allowed. Householder reduction is used for determinants, eigenvectors, and QR matrix factorization. Class Matrix and class Polynomial facilitate finding the characteristic polynomial. A hash table is used to do fast variable and function lookup (they are entries in the same table). Collisions are handled in the hash table by making each entry a linked list. Written as C++ classes using the STL libraries <complex> and <vector>. The Numerical Recipes routines zroots and laguer rewritten in C++ find the complex roots of a polynomial with complex coefficients. Exact quartic and cubic too. FFT that zero pads to 2^m 3^n, for dimensions up to 10.

Features

  • C++ classes in namespace with overloaded operators. STL <complex> and <vector> libraries used.
  • Arrays up to ten dimensions Definition by equation, resizing, mappings, matrices..
  • Complex circular and hyperbolic trigonometric functions and complex inverses
  • Bessel and modified Bessel functions with real arguments for integer orders of first and second kinds
  • Variables can simultaneously be scalar, array, and string. Expressions can be variable strings
  • Complex integrals including complex path integrals
  • Hash table for variable and function names Linked lists handle collisions
  • Numerical Recipes zroots rewritten in C++ using std::complex
  • Complex eigenvectors and eigenvalues found using Householder reduction
  • Inverse, determinant for complex square matrices found using Householder reduction
  • Complex Householder reduction A=Q*B for unitary Q and upper triangular B
  • fft and ifft for multi-dimensional complex arrays. Dimensions are automatically symmetrically zero padded to lowest bounding radix 2 and 3 size (2^m 3^n) for the general FFT. The Numerical Recipes FFT is also included for which zero-padding to lowest 2^N size is done for each dimension..
  • User defined functions with dummy arguments may be defined. These are command sequences in a string.
  • Builds with WSL2 Ubuntu and Debian g++, Raspbian Bullseye g++, Visual Studio 2022. See notes in formula.cpp
  • Standard console text size can be made large with control key and center mouse wheel (WSL2) or Ctrl-Shift-Plus (Raspbian)
  • Command sequences may be defined as strings and executed in a loop with test
  • Contents for variable names may be displayed and arrays can be saved to files.
  • Bash .sh build script for Ubuntu, Debian, Cygwin, Raspberry Pi
  • Bash .sh build scripts for making Windows 11 .exe files using Windows 11 WSL2 Ubuntu and Debian, Cygwin, and MinGW
  • Bash .sh build scripts for Unix that use gnuplot to generate plots
  • Bash .sh build scripts for Unix that use static library libfits.a or dynamic link library libfits.so to save 2D images as FITS files with either 1 or 2 slices. Complex data requires 2 slices (polar or cartesian).
  • 2D surface data can be saved as packed binary float or double .raw files, as float or double TIFF .tif files, or as .bmp files with many pre-defined color tables such as gray scale, rainbow, red-yellow-white and their inverses.. Saving as TIFF can only be done in Unix. It uses the raw2tiff command.
  • When built in Unix with gnuplot installed, can display line plats and 3D surface plots
  • When built in Unix, system commands can be executed within C++ Complex Calculator
  • 2D surface data can be saved as float FITS file which includes coordinate axes info XLEFT, YTOP, DX, and DY. These saved FITS image files can be read back.

Project Samples

Project Activity

See All Activity >

Follow C++ Complex Calculator

C++ Complex Calculator Web Site

Other Useful Business Software
Your top-rated shield against malware and online scams | Avast Free Antivirus Icon
Your top-rated shield against malware and online scams | Avast Free Antivirus

Browse and email in peace, supported by clever AI

Our antivirus software scans for security and performance issues and helps you to fix them instantly. It also protects you in real time by analyzing unknown files before they reach your desktop PC or laptop — all for free.
Free Download
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of C++ Complex Calculator!

Additional Project Details

Registered

2022-02-25