Code
程序代码
Calculator 的开发历史
使用命令 :dev_history 可以查看各版本的历史
>> :dev_history
Version: 0.550 Date: 11/04/2023 Fix bug in function diff(polyn). Update the function solve() and make it to solve equation like ax^2+bx+c==0. Try `solve(x^2+7x+8==0)` or `solve(x^2==7x8)` We add the two functions solve() and eq24() to the basic version. And we rename Calculator to Sowya. But we will still use calculator for the name of the class inside this project. Date April 11, 2023
Version  Date  Description 

0.441  24/11/2018  exp(x) 
0.4420.443  04/01/2019  log(x), ln(x), and fixed some bugs, such as operator==, Now we can compare .9==0.9 and so on. 
0.444  04/01/2019  Variables can be defined. fix_variables(1) a="1+2/3" a=2+3*9 :clear 
0.445  08/03/2019  Add two functions: binary2decimal() decimal2binary() 
0.446  17/03/2019  Add extra file in project, functions.h: which contains self defined functions. Fixed function sqrtn() 
0.447  21/03/2019  :change the function declaration IntDivision(string &, string &) to IntDivision(const string &, const string &) And change power operation to fast algorithm. 
0.448  01/04/2019  :Improved the function plus(), and add char ( in operators[], so can deal with expression a+b*c+(d*e+f)*g if a,b,...,g are defined. 
0.449  01/04/2019  :Add function: solve(equation,x,minValue,maxValue). 
0.450  06/06/2019  exp(x) fixed bug in computation IntDivision, that is: num1 % num2 add following functions: decimal2octal(n) decimal2hex(n) firstFactor(n) factorise(n) 
0.451  27/07/2019  fixed bug of internal function ChangeInfix() add function decimal2fraction(n) add internal function isInteger(n) add internal isPositiveInteger(n) add internal isNegativeInteger(n) add function !n=1!+2!+...+n! 
0.452  27/08/2019  add function eq24(a,b,c,d) 
0.453  06/09/2019  10%+10% 5%%3 
0.454  19/09/2019  add function Collatz() and print3x1maps(a,b) 
0.455  21/09/2019  add LucasLehmer test for Mersenne primes in function isprime() For example: isprime(2^891) 
0.456  11/10/2019  Fixed some BUGs founded on 09102019 For the previous versions, if you input the following : >> p=3511 >> 2^(p1)1mod(p^2) You will get 2^(35111)1@(3511^2 That is, the last char ) is lost. 
0.457  23/11/2019  Add function sum(general_term,n,min,max) on 09102019 
0.458  01/12/2019  Using hash function to deal with functions, add several functions, such as listfunctions(), help(funcName) and etc. on 01122019 
0.459  15/12/2019  Fix bug: (2) and 3^2 and etc. on 15122019 
0.460  24/01/2020  Fix bug: a=3 a==3 and etc. on 24012020 Set values: a=3 b=a and etc. on 24012020 
0.461  Date: 21/02/2019  Fix bug: binom(5,5)=∞ on 21022020 
0.462  05/03/2020  Add exmpo() in function list. on 05032020 
0.463  11/03/2020  Fix BUG: sum(i!,i,1,20) on 11032020 
0.464  11/03/2020  Fix BUG: sqrt(x) does not work when x is not an integer on 24032020 
0.465  02/04/2020  Set default precision to 8, and make some functions do quick calculation when precision is high. Date April 2, 2020 
0.466  14/04/2020  Add funtion getprecision() and fix bug of function setprecision() when no parameter is given. Date April 14, 2020 
0.467  16/04/2020  Modify the command class so that print the functions list ordered by name. Date April 16, 2020 
0.468  29/04/2020  Add command :mode, and enable do fraction calculation. Date April 29, 2020 
0.469  08/07/2020  Make it possible to do the fraction calculation. Date July 08, 2020 
0.470  10/07/2020  Make function sum() work under the fraction calculation mode. Date July 10, 2020 
0.471  22/07/2020  Compare fractions. (Comparer les fractions.) And we make the computing x! possible. For example, 3.4!=3.4*2.4*1.4. Date July 22, 2020 
0.472  25/07/2020  Fix a bug, the result of x mod 1 should be zero. And add function continued_fraction(num,expression,detail,tex). Date July 25, 2020 
0.473  28/07/2020  Still use function continued_fraction() to compute continued fraction. e.g., continued_fraction(3,5,1,1,2). Date July 25, 2020 
0.474  01/08/2020  Add function Farey(n) to generate Farey series. Date August 01, 2020 
0.475*  09/08/2020  Version 0.475 is the first version for register user. Date August 09, 2020 
0.476  29/08/2020  Allow function sqrt() accept negative number. Date August 29, 2020 
0.477  30/08/2020  Let function pi() return pi and pi(x) return the number of primes which is not greater than x. And add function list_pi_x(A,B) to print pi(x), where x is in [A,B]. Date August 30, 2020 
0.478  01/09/2020  Fix bug in function q_DuanwuPlus(). Add function reverse() and reverse_plus(). If input `_` , then it will return the previous result. Date September 01, 2020 
0.479  02/09/2020  Set system variables. Date September 02, 2020 
0.480  06/09/2020  Permet au système d'effecteur des opérations symboliques. Date September 06, 2020 
0.481  09/09/2020  Fix bugs in the symbolic operations such as +,,*,/. Date September 06, 2020 
0.482  22/10/2020  Change the infinity symbol ∞ to string `Inf` to avoid the error during arithmetic computation. Improved the operations including pre_power and etc. Date October 22, 2020 
0.483  11/11/2020  Improved function eq24() such that it works under fraction mode. And improved the function fr_multiplication() and inputcmd2expression(). Date November 11, 2020 
0.484  24/11/2020  Add functions: Primes(n), p(n) and index_of_prime(n). Date November 24, 2020 
0.485  10/12/2020  Improved Factorise() and the calculation of n!. Try 10000! or Factorise(10000!). Date December 10, 2020 
0.486  18/12/2020  Fix bug in function Factorise(). Date December 18, 2020 
0.487  24/12/2020  Fix greate bugs in symbol calculations. Date December 24, 2020 
0.488  26/12/2020  Fix bugs in symbol calculations. Date December 26, 2020 
0.489  27/12/2020  Fix bugs in symbol calculations. Date December 27, 2020 
0.490  28/12/2020  Such expressions (x1)(x+2) are allowed. Date December 28, 2020 
0.491  14/03/2021  Add function Fibonacci(). Date March 14, 2021 
0.492  21/03/2021  Improve the functions gcd() and lcm() and let them support multiparameters. Fix bugs in functions help() and Factorise(). Date March 21, 2021 
0.493  22/03/2021  Fix bugs in functions log() or ln(). Date March 22, 2021 
0.4940.499  12/04/2021  Improve functionality of Calculator. Date April 12, 2021 
0.494  11/05/2021  Improved the algorithm of computing !n Date May 11, 2021 
0.495  23/06/2021  Add Mobius function: mobius(x). Date June 23, 2021 
0.496  06/09/2021  Add function: printSeries(1/n,n,1,10). Date September 6, 2021 
0.497  12/10/2021  Add function: hex2decimal(0xABCDEF123456). octal2decimal(01234567). any2decimal(num,p) Date October 12, 2021 
0.498  28/11/2021  Add function: goldbach(n). Verify the Goldbach conjecture. Date November 28, 2021 
0.499  03/12/2021  Improved function: goldbach(n). Date December 03, 2021 
0.500  14/03/2022  Add function subset(N,m) on Pi Day. Date March 14, 2022 
0.501  06/07/2022  For convenience, we change the name of functions expmo() to expmod().
Date June 13, 2022 Fix function exp(x), here x may be negative. Date July 4, 2022 Add function decimal2any(N, base). We also add functions for padic numbers, such that ord_p() and norm_p(). Date July 6, 2022 
0.502  21/07/2022  Change if else statements to a switch statement for string. Date July 21, 2022 
0.503  24/07/2022  Matrix definition, A=[1,2,3;4,5,6;7,8,9]. Date July 24, 2022 
0.504  25/07/2022  Fix some bugs. Date July 25, 2022 
0.505  28/07/2022  Add function EulerBrackets() 欧拉括号, qid=2965. Date July 28, 2022 
0.506  05/08/2022  Fix some bugs of inputting matrix. Date August 5, 2022 
0.507  07/08/2022  Add function Factorial(n), return the standard decomposition of n!. Date August 7, 2022 
0.508  10/08/2022  Add function IndefiniteEquation(a,b), solve the indefinite equation ax+by=1. Date August 10, 2022 
0.509  11/08/2022  Fix bugs of IndefiniteEquation(a,b). Date August 11, 2022 
0.510  20/08/2022  We change the interface of the CalculatorApp by Using UPP's Docking technology. And we start to write the manual of Calculator. Date August 20, 2022 
0.511  22/08/2022  Fix bug of fraction operation described in qid=2973. Date August 22, 2022 
0.512  24/08/2022  Update the manual of Calculator and add download link to update Calculator. Date August 24, 2022 
0.513  28/08/2022  Update the manual of Calculator and fix some bugs. Date August 24, 2022 
0.514  29/08/2022  Add dialog for register and add the backup serialization data as used in the DockingExample2 in U++ reference. Date August 24, 2022 
0.515  01/09/2022  Add two functions disp() and det(). Date September 1, 2022 
0.516  02/09/2022  Fix bugs. Date September 2, 2022 
0.517  04/09/2022  Add function solve_n3plus_until_m3_eq_p3(n,m) to find the solutions of the equation: n^3+(n+1)^3+...+M^3=q^3. Date September 4, 2022 
0.518  05/09/2022  Improve matrix input rules, see qid=2978. Date September 5, 2022 
0.519  09/09/2022  Fix mod function, we allow negative numbers. For example, 680mod47. Date September 9, 2022 
0.519  10/09/2022  中秋快乐! September 10, 2022 
0.520  11/09/2022  Fix the bug described in qid=2928, about the precedence of operators Try (2*1+1)*1!*2^(2*1) and 9!3!. Here 9!3! means 9!(3!). Date September 11, 2022 
0.521  13/09/2022  Solve the indefinite equation like 25x13y+7z=4. Try input `IndefiniteEquation(25,13,7;4)`. Date September 13, 2022 
0.522  18/09/2022  Solve the indefinite equations like x+2y+3z=4 and 7x1+4x22x3+3x4=2. Try input `IndefiniteEquation(1,2,3;4)` or `IndefiniteEquation(7,4,2,3;2)`. Date September 18, 2022 
0.523  30/09/2022  Input matrix with elements in the form of expression. Try input `[2^21,6+5*3,71/4;1/3,1+2/3,0;13^2,2,7+9/7]`. Date September 30, 2022 
0.524  03/10/2022  Add function EulerVarphi(n), which return the amount of numbers that less than n and coprime to n. Date October 03, 2022 
0.525  16/11/2022  Make the function binom() support simple symbolic operations. For example, binom(n,k) will return (n)!/((k)!*(nk)!). Date November 16, 2022 
0.526  07/12/2022  Fix bug of IndefiniteEquation() For the case IndefiniteEquation(a,b;c), it will use the same algorithm of IndefiniteEquation(a,b). Date November 16, 2022 
0.527  09/12/2022  Add a parameter in function sum(). Try sum(n^2,n,1,100) and sum(n^2,n,1,100,expand). The last parameter `expand` will print the expression. Date December 09, 2022 
0.528  16/12/2022  Add the operations of polynomials, such as addition, subtraction and multiplication. First we switch to polynomial mode by typing `:mode=polyn`, then type `(4x^3+x^2)+(3xx^6)*2x` and push Enter key. Here we only deal with polynomial of variable x. Date December 16, 2022 
0.529  17/12/2022  Simplify the output of the result polynomial. Delete the zero terms(for example, 0x^2) in the polynomial. `(x+1)*(x^2x+1)` will return 1x^3+1x^0. Date December 17, 2022 
0.530  01/01/2023  Add division of polynomials. For example `(x^3+x+1)/(x+1)` will return quotient: x^21x^1+2 remainder: 1. Date January 01, 2023 
0.531  03/01/2023  Add the power of the polynomial. Try `(x^2+2)^3`. Date January 03, 2023 
0.532  12/01/2023  Make handling large number coefficients of polynomial possible. Try `(x^2+2)^100`. Date January 12, 2023 
0.533  27/01/2023  Fix bug[qid=3056] of polynomial calculation. The coefficients are calculated by using fractions. Try `(x^4+3x^3x^24x3)/(3x^3+10x^2+2x3)`. Date January 27, 2023 
0.534  30/01/2023  The function isprime(n) allows negative numbers as arguments. Try `isprime(1291)` Improve the algorithm of function solve_n3plus_until_m3_eq_p3(). Try `solve_n3plus_until_m3_eq_p3(10,100)` Date January 30, 2023 
0.535  31/01/2023  Add function Legendre(a,p) to calculate the value of Legendre symbol (ap), where a is coprime with p and p is a prime number. Try `Legendre(438,593)` Date January 31, 2023 
0.536  02/02/2023  Add function Jacobi(a,p) to calculate the value of Jacobi symbol (ap), where a is coprime with p and p is an odd number. Try `Jacobi(438,593)` or `Jacobi(438,593,show)` Date February 2nd, 2023 
0.537  04/02/2023  Add function printRecursiveSeries(Iteration_expression, x, initialValue, N, delimiter). Try `printRecursiveSeries(x/2,x,2,10, )` `printRecursiveSeries((4*n2)*h_n,h_n,1,10, )` Date February 4th, 2023 
0.538  10/02/2023  Fix bug of function IndefiniteEquation(). Try `IndefiniteEquation(51,24;906)` Fix bugs in polynomial operations. Add function simplify(polynomial). Try `simplify(x+23x+x^23x^2)`. Date February 10, 2023 
0.539  11/02/2023  Fix bugs in polynomial operations. Add operations (poly1)%(poly2), (poly1)mod(poly2) and (poly1)==(poly2). Make sure add to enclose parentheses around polynomials. Try `(x^2000)%(x^4+x^3+2x^2+x+1)`, `(x^2000)mod(x^4+x^3+2x^2+x+1)`, `(x+x^23)==(3+x^2+x)`. Add function `deg()` to get the degree of polynomial. Try `deg(x^2x^3+7x^9)`. Date February 11, 2023 
0.540  13/02/2023  Make the function decimal2binary() and binary2decimal() able to handle decimals. Try `setprecision(100)` `decimal2binary(2023.0213)`. Date February 13, 2023 
0.541  16/02/2023  Fix bug of function printRecursiveSeries() and improve it. Try `printRecursiveSeries((a_n+n+1)/(1+a_n*(n+1)),a_n,2,10,\n,linenumber)` `printRecursiveSeries(a_{n+1}==(a_n+n+1)/(1+a_n*(n+1)),a_3=2,10,\n,linenumber)`. Date February 16, 2023 
0.542  24/02/2023  Fix bug of function printRecursiveSeries(). Try `printRecursiveSeries(5*I_k+1/(k+1),I_k,0.08,10,\n,linenumber)`. Date February 24, 2023 
0.543  16/03/2023  Implement batching, i.e. read a file and execute the statements in it sequentially. First write some expressions or functions in a text file, named for example test.sy, with content below. a=2 a+3*8 :mode=polyn (4x^3+x^2)+(3xx^6)*2x :mode=numerical A=[1,2; 3,2] B=[1 2 3 4;3,2,0 1;0,2,0,9;1,3,5, 1] EulerVarphi(20230316) hex2decimal(0x134b0ac) Save it and run the command: calculator.exe test.sy We also can specify the output file by using the following way. calculator f test.sy o output.txt Date March 16, 2023 
0.544  24/03/2023  Add function Factorise_analysis(n) to decompose a positive integer into the product of two types of prime numbers. One type is equal to 1(mod 4), another is equal to 3(mod 4). And compute some functions such as delta(n), epsilon(n) and xi(n). Try Factorise_analysis((3 * 24 * 2023) ^ 2) Change the internal logic of the mode. Try `:mode help` . Date March 24, 2023 
0.545  25/03/2023  Add function Gcd(poly1, poly2) to compute the greatest common divsor(factor) of polynomials. Try `Gcd(x^4+3x^3x^24x3,3x^3+10x^2+2x3)` `Gcd2(x^4+3x^3x^24x3,3x^3+10x^2+2x3)` Add function monic_polyn() to transfer a polynomial to monic polynomial. `Try monic_polyn(3x^2+6x9x+2)`. Date March 25, 2023 
0.546  01/04/2023  Fix errors of function Gcd() and Gcd2(). Add the function diff() to differentiate polynomial function. Try `diff(x^4+3x^3x^29x+7)`. Date April 01, 2023 
0.547  02/04/2023  We modified the sqrt() function so that it returns results of the form m*sqrt(n) in fractional calculation mode. Try `:mode fraction sqrt(972)`. Date April 01, 2023 
0.548  06/04/2023  Improved the algorithm used by function listpseudoprimes(n). Now it runs fast. Date April 06, 2023 
0.549  09/04/2023  Fix bug in function printRecursiveSeries(). And we can type `:help funcName` or `:h funcName` to display the introduction of the function, just like input `help(funcName)`. Date April 09, 2023 
0.550  11/04/2023  Fix bug in function diff(polyn). Update the function solve() and make it to solve equation like ax^2+bx+c==0. Try `solve(x^2+7x+8==0)` or `solve(x^2==7x8)` We add the two functions solve() and eq24() to the basic version. And we rename Calculator to Sowya. But we will still use calculator for the name of the class inside this project. Date April 11, 2023 
0.551  19/04/2023  Make the function sqrtn() deal with the fraction. For example, Try `sqrtn(64/27,3)`. And fix bug in function sqrt(). We also make the function solve() can solve the equation like ax^3+bx^2+cx+d==0. Try `solve(x^33x^2+2x^1==0)` Date April 19, 2023 
0.552  01/05/2023  Fix bug of sum() function under fraction mode, Try `:mode fraction` `sum(1/8*((i1)/8)^2,i,1,8)`. Date May 01, 2023 
0.553  02/05/2023  Add the function of complex number operations. Try `:mode complex` `(1+2i)+(34i)` `(1+2i)(34i)` `(1+2i)*(34i)` `(1+2i)/(34i)` Date May 02, 2023 
0.554  07/05/2023  Add function inv(A) to compute the inverse matrix of A. Try `A=[1,2,3;4,5,6;7,8,0]` `inv(A)` `:mode fraction` `inv(A)` Date May 07, 2023 
0.555  04/06/2023  By using clox (http://www.craftinginterpreters.com/), we make programing in Sowya possible. Try `:mode clox` `fun echo(){var n=900000000000000000; while(n<900000000000000009){print n*n;n=n+1;}}` `echo();` `:q` Date June 04, 2023 
0.556  08/06/2023  In mode clox, we can input multiple lines. Try >>:mode clox >{ fun echo(){ var n=9; while(n<20){ print 2^n; n=n+1; } } } >echo(); >:q >> Date June 08, 2023 
0.557  11/06/2023  In mode clox, we add native function length() to return the length of string and function ith_char(s,i) to return the ith char of string s. Try >>:mode clox var x="Hello Sowya!"; print length(x); print ith_char(x,6); Date June 11, 2023 
0.558  14/06/2023  In mode clox, we add native function avg() to calculate the average value of several numbers. Try >>:mode clox print avg(12,3,4,5,98); var x=12; var y=29;print avg(x,y); And we also add load file function. Suppose we write a function named avg(a,b) in the file avg.sy in the folder code. Then try >>:mode clox load(code\avg.sy) print avg(2,3); Date June 14, 2023 
0.559  17/06/2023  In mode clox, we add native functions setprecision() and setmode(). Try >>:mode clox print 1/2+1/3; setprecision(20); print 1/2+1/3; setmode(1); print 1/2+1/3; Date June 17, 2023 
0.560  21/06/2023  In mode clox, we improved the print function. It will print newline when `\n` accurred. Try >>:mode clox print 1/2+1/3; print "\n"; var a=2; var b=3; var c=a*b; print a,"\n", b,"\n",c,"\n"; Also, we improved the variable declaration. Now we can define multiple variables in one line. Try var a=2, b=3, c=a*b; Date June 21, 2023 
0.561  04/07/2023  In mode clox, we fix a bug that we can not run the native function avg. The reason is that we forget claim the global variable pA in class Calculator. Date July 04, 2023 
0.562  08/07/2023  A bug is fixed. Try :mode fraction printSeries((1)^n*1/(2*n+1),n,0,10) (1/5+1/3)^(2) (1/3)^(3/2) Date July 08, 2023 
0.563  24/07/2023  Several functions are opened in the basic version. See which functions are available, listfunctions() Add operations for the matrix elementary transformations. Try A=[1 2 3;4 5 6;7 8 0] transform(A, r2r1*4) transform(A, r3r1*7) transform(A, c1<>c3) :mode fraction transform(A, c2*(1/3)) Date July 24, 2023 
0.564  25/07/2023  Make elementary transformation available for matrix with x. Try A=[5x,1,2,3;x,x,1,2;1,2,x,3;x,1,2,2x] transform(A,r1<>r3) transform(A, r2r1*x) transform(A, r3r1*5x) transform(A, r4r1*x)transform(A, r2*(1)) transform(A, r3*(1)) transform(A, r4*(1)) transform(A, r3r2*10) transform(A, r4r2*2) transform(A, r2+r3*x) transform(A, r3r4) Date July 25, 2023 
0.565  30/07/2023  Fix bug in multiplication for fraction. Try A=[0,a,2,1;a,0,d,3;2,d,0,1;1,3,1,0] det(A) Date July 30, 2023 
0.566  31/07/2023  Add function transpose() to return the transpose matrix of the given matrix. For the above matrix A, Try transpose(A) Date July 31, 2023 
0.567  02/08/2023  Addition, subtraction and multiplication of matrices are implemented. Try A=[1 2;3 4] B=[2 0;0 3] A+B AB A*B A^2 A+B*A Date August 02, 2023 
0.568  04/08/2023  Use unordered_map<> to store the variables. Date August 04, 2023 
0.569  05/08/2023  Fix a bug. In polyn mode, `x*x*x3x*x+2x5` will be transformed into `x^33x^2+2x5`. Try it. Date August 05, 2023 
0.570  07/08/2023  Add two functions CofactorMatrix(A,i,j) and DetExpansion(A,r2). The first returns the (i,j)th element of matrix A. The second will expand matrix A along ri(row i) or cj(column j). Try A=[1,0,2;1,1,3;2,3,1] CofactorMatrix(A,2,3) DetExpansion(A,r1) DetExpansion(A,c2) Date August 07, 2023 
0.571  10/08/2023  Add E() function to generate elementary matrix. E(n,i,j(k)) will generate the elmentary matrix E(i,j(k)) of order n. And E(n,i(k)) will generate the elementary matrix E(i(k)) of order n. Try E(4,2,3(5)) E(5,3(2)) :list Date August 10, 2023 
0.572  19/08/2023  Add rank() function to calculate the rank of matrix. Try A=[1 3 6;1 2 3;1 4 9] rank(A) rank(A,hint) Date August 19, 2023 
0.573  25/08/2023  Fix a bug in rank() function. To return the rank of matrix A, simply input rank(A). If we want to calculator the row rank of A, then input rank(A,row), which will use elementary row transformation of A to calculate the rank. Of course, you can input rank(A,col) to return the column rank of A. While rank(A,hint) also return the rank of A, it will use elementary row transformation when the rows of A is less or equal than the columns of A, and use the elementary column transformation when the rows of A is greater than the columns of A. Date August 25, 2023 
0.574  29/08/2023  We extend functionality to function eq24(). Also we add aliases `s24()` and `suo()`. Try eq24(8,6,4,4) s24(11,10,5,1;24) suo(8,6,6,4;28) Date August 29, 2023 
0.575  01/09/2023  We extend functionality to function solve() to solve linear equations. Try A=[1,1,3,1;3,1,3,4;1,5,9,8] b=[1;4;0] solve(A*x==b) Date September 01, 2023 
0.576  02/09/2023  Try A=[1,1,3,1;3,1,3,4;1,5,9,8] b=[1;4;0] solve(A*x==b,normal) solve(A*x==b,hint) solve(A*x==b,normal,hint) Date September 02, 2023 
0.577  09/10/2023  We add the ispolyn() function to check if the input string is a polynomial of x. Try ispolyn(3*(9+2)x^3) Date October 09, 2023 
0.578  21/10/2023  Adapt to SciTE so that *.sy , *.sc files can be run in SciTE. where *.sy is a sowya file, which can be executed line by line by sowya.exe; And *.sc is a sowya clox programming file and can be executed by sowya.exe. Date October 21, 2023 
0.579  26/10/2023  When switching to clox mode, Sowya will automatically load the files in the `ext` directory. If this directory does not exist, it will create it. Now we can put the code of the custom function into the `ext` directory to enhance the functionality of Sowya. Date October 26, 2023 
0.580  14/12/2023  We add plugin system.

0.581  21/12/2023  Add sine function. Try: sin(1) sin(1.2) Date December 21, 2023 
0.582  25/12/2023  Add functionality to the sine function. Try: sin(1.5pi) sin(2/3pi) Date December 25, 2023 
0.583  29/12/2023  Add function deg2rad(). Try: deg2rad(15) Date December 29, 2023 
测试