SCal ( Scientific Programmer Calculator ) by Tamineer Technologies Inc.,

Free Versions are available in following stores, click your favorite image to know more

Get it on App Store Get it on Galaxy Store Get it on Google Play Get it on Amazon

Paid Versions are available in following stores
Get it on App Store Get it on Galaxy Store Get it on Google Play Get it on Amazon

SCal ( Scientific Calculator ) App is a scientific,smart, graphic, programmer, fraction, polynomial calculator available in Android and Apple Platforms. It can be used by anyone (kids, school student, college student, teachers, professors, work place, seniors) except babies (they can crash it!!). If you want the calculator to display 20 for input 2+3*4 then click Settings and change Precedence to OFF. Now for the list, SCal supports
  • Built In App Keyboard is Used to Enter expression. Some Special Buttons in App Keyboard are
    • Back Space - To remove last character.
    • Clear the Input expression.
    • Hide the App Keyboard.
    • Space Bar.
    • To move cursor Left.
    • To move cursor Right.
    • Enter Key To Save Expression.
    • Hex 🔡 To Show Hexadecimal characters and Bitwise Operators.
    • √∛... select function name to add to expression
    • αe... select constant to add to expression
Standard Operators are + (ADD), - (SUBTRACT) , * (MULTIPLY) , / (DIVISION)
  • e.g.,
    • 8-3+5*10/2=30
    • 64/8*2+-4=12
    • 64/8*2-4=12
Functional Operators are ! (FACTORIAL) , @ (REMAINDER), ^ (EXPONENT), % (PERCENT),
  • e.g.,
    • 2+4*3! = 26
    • 3*2^3+1=25
    • 3+4^3-3!=61
    • 6+5@3+4=12
    • 5*3%+1=1.15
Bitwise operators are & (AND), | (OR) , ~ (NOT) , ^^ (EXCLUSIVE OR),
  • e.g.,
    • 8|9 = 9
    • 5&9=1
    • 8+2|3+8&2=10
    • ~(3|4) = -8
    • 8^^4 = 12
Shift Operators are << ( LEFT SHIFT OPERATORS) , >> (RIGHT SHIFT OPERATORS).
  • e.g.,
    • 10<<2 = 40
    • 100>>2 = 25
    • 2+5!<<2+1 = 976
Operators Precedence is Turned ON for all three modes of operation, it can be turned OFF only for Algebraic expression Mode by selecting Settings button and clicking on "X" radio button in Precedence . Operators ( ^ ! % ~ @ / * + - << >> & ^^ | ) follows PEMDOS/ BODMAS precedence. following are the list of operators with highest precedence listed first
  1. ( ) Open and close Parenthesis e.g., (2+3,002)*5 = 15010
  2. ^ Exponent e.g., 3^4+(2+5)*4= 1093
  3. ! % Factorial and Percent e.g., 3!+12% = 6.12
  4. ~ Bitwise Not e.g, 3 - ~4 = 8
  5. @ Remainder e.g, 4+11@3-1 = 5
  6. / * Division and Multiplication e.g., 12/5+3*4 =14.4
  7. + - Addition and Subtraction e.g., 12/5+3*4-4.4+10 = 20
  8. << >> Left Shift and Right Shift e.g., 4+12>>2<<4 = 64
  9. & Bitwise AND e.g., 3+4&3+1 = 4
  10. ^^ Bitwise XOR e.g., 12+3^^4-1 = 12
  11. | Bitwise OR e.g., 3+4|3+1 = 7
Complex Numbers are written in the form of a+bi, where 'a' is the real part and 'b' is the imaginary part, suffix 'i' is needed for imaginary number, both 'a' and 'b' can be arithmetic expression. Complex Numbers supports operators ( +, - , *, / , ^ )and Functions
  • e.g.,
    • 3+2i+4+3i = 7+5i
    • (3+2i)(3-2i)=13
    • (10-5i)/(10+5i)=0.6-0.8i
    • 3+2i+5+8(3-4)i = 8-6i
    • (3+2i)^(2+3i) = 0.681767-2.12075i
Fraction Calculator:
  1. By default results are displayed as Decimal , setting the results to Fraction causes the intermediate and final result to be displayed as a fraction,
    • e.g,.
      • 3/2+5/3=19/6
      • 1/2+11/16+9/32 = 47/32
      • 1/2+11/16-2/3+9/32 = 77/96
      • (1/4+2/3)*(11/12+1/4) = 77/72
    • Decimal Numbers are converted to fraction
      • e.g,.
        • 3.75 = 15/4
        • 1.0694444 = 77/72
        • 1.46875 = 47/32
      • Mix Decimal Numbers and fractions
        • e.g,.
          • 3+1.5 + 1/2 + 2.25*2 = 19/2
          • 3+1.5 - 1/2 + 2.25*2 = 17/2
My Language :
Precision :
  • Precision controls the number of digits displayed after Decimal , by default precision is six(6), this value can be changed by selecting Settings, and changing Precision , value between 1 to 16.
    • e.g.,
      • 3.111 + 1.222 = 4.333 ( Using Default Settings)
      • 3.000001 + 2.000002 = 5 ( Using Default Settings)
      • 3.5 + 1.2 = 5 ( Using Precision=1)
      • 3.5 + 1.2 = 4.7 ( Using Precision=2)
      • 3.000001 + 2.000002 = 5.000003 ( Using Precision=7)
Results are displayed in Real-Time:
  • For every key entered results are automatically calculated and displayed, so there is no need to type Enter or Send Key to see the result. To see full graph in Statistics and Function Evaluation of single variable mode touch outside the keyboard.
  • Backspace can be entered to erase the current input expression or click on the Current Mode to clear the input expression.
Send or Enter Key:
  • Press Send or Enter key to save the current input expression and the result.
  • Saved expressions can be retrieved and modified using single click and double click
Results:
  1. Decimal: By Default Results are displayed in decimal but can be changed to Fraction, Local Representation, Hex, Bin or Oct by selecting desired radio button. Maximum Number of Digits displayed after decimal is controlled by ( Precision ) which is set to six(6). This value can be changed by selecting Settings, and giving different value for Precision
    e.g,. 32/3+23/4=16.4167
  2. : Final result is displayed as a fraction e.g,. 3/2+5/3=19/6
  3. : Final result is displayed in local number format e.g, 8,000+10,000,000 = 10,008,000
  4. Hex
    (Hexadecimal) : Final result is displayed as a hexadecimal number e.g., 3/2+5/2+20 = 18 ( = decimal 24)
  5. Bin
    (Binary) : Final result is displayed as a binary number e.g., 3/2+5/2+20 = 11000 ( = decimal 24)
  6. Oct
    (Octal) : Final result is displayed as a Octal number e.g., 3/2+5/2+20 = 30 (=decimal 24)
Digit Grouping: Input Digits can be separated by comma for easy reading, comma can be placed after any digits. e.g.,
  • 1,000+2,000 = 3000
  • 1,00,000+20 = 100020
Default Decimal separator:
  • dot (.) is the default decimal separator, but can be changed in settings to comma (,). Digits after comma are treated as decimal part, so 1,25 is same as 1.25 with comma decimal separator. e.g.,
    • 2,5+3,25=5,75
    • 12,5+3,51=16,01
Hexadecimal Numbers can be entered in Algebraic Expression and in the Statistics Mode. Numbers starting with prefix 0x or having letters A-F are considered Hexadecimal numbers, and it doesn't make the whole expression hexadecimal.
  • e.g.,
    • 15+0x10+1a=57
    • a+20+0x10-12=34
    • Number 15,20 and 12 in the above example are treated as decimal as there is NO 0x prefix and the Results are in Decimal by default
Hexadecimal floating point numbers are represented with 'p' as an exponent
  • e.g.,
    • 0x3.a2p3 + 0x23.a4p-2 = 37.972
    • 0x3.a7p10 + 0x43.b8p2 = 4010.88
Angles in Radian / Degree:
  • By Default angle measurements are in Radians, it can be changed to Degrees by Selecting Settings and choosing "Degree" radio button for "Angle"
Following Trigonometric functions are supported: sin, cos,tan, asin, acos, atan. Angles are in Radians which can be changed to Degree in Settings . radian function can be used to convert degrees to radians, and degree function can be used to convert radian to degrees.
  • e.g.,
    • 2+sin35 = 1.57182
    • 1+cos45+tan20 = 3.76248
    • 5+asin.5+acos.5+atan.5 = 7.9442
    • radian(180) = 3.14159
    • degree(3.1415) = 179.9946
Following Hyperbolic functions are supported: sinh, cosh, tanh, asinh, acosh, atanh.
  • e.g.,
    • 1+sinh(1)+cosh(1)+tanh(1) = 4.47988
    • 2+asinh(3)+acosh(3)+atanh(.3) = 5.89071
Exponential and Logarithmic functions supported are : exp, exp2, log, log2, log10
  • e.g.,
    • 3*2+exp(8*3-5*2)+6*5 = 1.20264e+06
    • 3*2+log10(8*3-5*2)+6*5 = 37.1461
    • 3*2+log(8*3-5*2)+6*5 = 38.6391
sqrt, cbrt functions are supported, Use operator ^ for power.
  • e.g.,
    • 11 + sqrt(-4+6*4/3) = 13
    • sqrt((3*2+8i)+(4+3+3i)) = 3.87488+1.4194i
    • cbrt(3+20-3*2+10)= 13
erf and erfc error functions are supported :
  • e.g.,
    • 1 + erf(.5) = 1.5205
    • 1 - erfc(.5) = 0.5205
    • 1 - erfc(.5) = 0.520499878 (using Precision ) = 9)
tgamma and lgamma functions are supported :
  • e.g.,
    • 1 + tgamma(7) = 721
    • 1 + lgamma(7) = 7.5793
Rounding functions supported are : trunc, round, ceil, floor
  • e.g.,
    • 1 + trunc(2.6) = 2
    • 1 + trunc(-2.6) = -1
    • 1 + round(2.6) = 4
    • 1 + round(-2.6) = -3
    • 1 + floor(2.6) = 3
    • 1 + ceil(2.1) = 4
Absolute function is supported using abs
  • e.g.,
    • 1 + abs(-3) = 4
    • 1 + abs(-3.3) = 4.3
Supported Predefined functions for complex numbers are
  1. Following Trigonometric functions are supported: sin, cos,tan, asin, acos, atan.
    • e.g.,
      • 3+2i+sin(1+2i) = 6.1658+3.9596i
      • 3+2i+cos(1+2i) = 5.0327-1.0519i
      • 3+2i+tan(1+2i) = 3.0338+3.0148i
      • asin(1+2i) = 0.42708+1.5286i
      • acos(1+2i) = 1.1437-1.5286i
      • atan(1+2i) = 1.339+0.40236i
  2. Following Hyperbolic functions are supported: sinh, cosh,tanh, asinh, acosh, atanh.
    • e.g.,
      • 3+2i+sinh(1+2i) = 2.5109+3.4031i
      • 3+2i+cosh(1+2i) = 2.3579+3.0686i
      • 3+2i+tanh(1+2i) = 4.1667+1.7565i
      • asinh(1+2i) = 1.4694+1.0634i
      • acosh(1+2i) = 1.5286+1.1437i
      • atanh(1+2i) = 0.17329+1.1781i
  3. Following Exponential functions are supported: exp, log, log10
    • e.g.,
      • 3+2i+exp(1+2i) = 1.8688+4.4717i
      • 3+2i+log(1+2i) = 3.8047+3.1071i
      • 3+2i+log10(1+2i) = 3.3495+2.4808i
  4. sqrt function is supported
    • e.g.,
      • 3+2i+sqrt(1+2i) = 4.272+2.7862i
  5. Following standard functions are supported for complex numbers: abs, arg, norm, real, imag, conj.
    • e.g.,
      • 3+2i+abs(1+2i) = 5.2361+2i
      • arg(1+2i) = 1.1071
      • norm(1+2i) = 5
      • real(1+2i) = 1
      • imag(1+2i) = 2
      • conj(1+3i) = 1-3i
Operating Modes: There are three modes supported by the calculator, they are
  1. Algebraic Expression by selecting button ±√∿⊻
  2. Function Evaluation by selecting button f(x,..)
  3. Statistical Function by selecting button 📈 ;
Algebraic Expression Mode:
Function Evaluation mode
  1. This mode supports most of the features of Algebraic Expression mode and also accepts equations with variable names. List of variables are specified inside f( ) .
  2. By default variable x is specified which can be changed to any other character. To specify more than one variable append other variable names like a,p,r,t inside f( ) .
  3. Maximum of five Variables are accepted, each variable name can be any character like x,p,a,t etc., For each variable added, correspondingly three input boxes are created and filled with default minimum, maximum and increment value of 1. For example, variable x , has range and increment specified as
    x = { 1 .. 1 } ∆ (increment) 1
    • First input box after text x = { with value '1' corresponds to Minimum value of x
    • Second input box after text .. with value '1' corresponds to Maximum value of x
    • Third input box after text increment with value '1' corresponds to Increment of x
    • Fourth input box showing placeholder text 4x^2+3x+2 accepts the actual expression that can use variable x
  4. Single Variable Function :
    • For single variable like x , results are displayed as { (x1,y1),(x2,y2),(x3,y3)..}
    • where y1 is the result of the function for the given input x1
      • Graphs are displayed automatically in Function Evaluation Mode only when single variable is used.
  5. Multiple Variable Function :
    • For every additional variable, three input boxes corresponding to Minimum, Maximum and Increment are automatically created with default values.
    • Multiple variables like a,b creates total of six input boxes and results are displayed as { (a1,b1,c1) (a2,b2,c2) (a3,b3,c3).. }
    • where c1 is the result of the function for the given input a1,b1
  6. Except Hexadecimal numbers all the features in Algebraic Mode are supported in Function Evaluation mode.
    • e.g.,
      • f(x) : x ={ 1 .. 3 }, ∆ 1;
        f(x) = 3x+1 = { (1,4), (2,7), (3,10) } .
      • f(x) : x ={ -4 .. 4 }, ∆ 1;
        f(x) = 2(3*2-4*2)+sinx = { (-4,-3.243) (-3,-4.14112), (-2,-4.9093),(-1,-4.84147) (0,-4) (1,-3.15853) (2,-3.0907) (3,-3.85888) (4,-4.7568) } .
      • f(x,y) : x ={ 1 .. 3 }, ∆ 1 y ={ 1 .. 3 }, ∆ 1;
        f(x,y) = 3x+2y+5 = { (1,1,10), (2,2,15), (3,3,20) }
Graph a Function:
  1. Function containing single variable like f(x) automatically displays the graph, for e.g., f(x) = sinx with values of 'x' in range -4 to 4 and increment 1, displays sine wave graph and the resulting four points as (x,y).
  2. To see bigger graph, select Settings button and click on "X" radio button in List Answer , also set Precision to number 2 by selecting Settings , and changing Precision .
  3. Graph displayed can be saved to local file system by clicking on the 📁 File Folder Button. Files are saved under Download directory with current time stamp. By default input expression and their results are saved to image, it can be turned OFF by selecting Settings button and clicking on "X" radio button in List Answer
Graph multiple Functions:
  1. Many single variable functions can be displayed in the same graph by separating each function with ; (semicolon) for e.g., 1-sinx ; 1-cosx shows graph drawn for two functions.
  2. Both the functions share the same range and increment.
Expression in Function Mode:
  1. Except Hexadecimal numbers all the features of Algebraic Expression are supported.
  2. Function Expression also accepts equations with variable names that are specified inside f( ) .
Statistics Mode: This mode is active when 📈 Line Graph button is selected.
  1. In this mode, input data can be separated either by space or , (comma) or ; (semi-colon).
  2. Expression in Statistics Mode:
    All the features of Algebraic Expression are supported. Each sample data can be expression for e.g., 2+5   3*5   50-5(4*2)  results in 3 sample data of values 7 15 10.
  3. Additional Statistical Functions are supported only in this mode.
  4. Summation, Mean, Median, Mode and Standard Deviation functions are enabled by default.
Statistics Functions: Following functions are supported, any or all of them can be enabled using settings . Except Permutation and Combination most of the following examples uses the data set 5,10,15,20.
  1. Sum e.g., 5 10 15 20 sum = 50
  2. Mean (enabled) e.g, mean=12.5
  3. Product product = 15000
  4. LCM lcm=60
  5. GCD gcd = 5
  6. Minimum min = 5
  7. Maximum max = 20
  8. Median (enabled) = 12.5
  9. Mode (enabled) No Mode as none of the values are repeated
  10. Standard Deviation (enabled) 6.454972
  11. Range 15
  12. Count 4
  13. Permutation, only Two values should be entered e.g, 5 3 result 60
  14. Combination, only Two values should be entered e.g., 5 3 result 10
  15. Percentile (default 50) result 12.5
  16. Sort in Ascending order result 5 10 15 20
  17. Sort in Descending order result 20 15 10 5
Statistics Graphs:
  1. Statistical Data automatically displays line graph, other graphs that are supported are Bar Graph and Pie Chart.
  2. To display different type of Graph select Settings and choose either Bar or Pie Chart from Graph Type . Graphs display can be stopped by selecting "None" in Graph Type.
Save and Retrieve Expression:
  1. Typing Enter Key causes the current expression to be saved into Saved Expression Table.
    • Single click on the Saved Expression Table containing algebraic expression causes the "results" of the algebraic expression to be appended to the input window.
    • Single click on the Function evaluation and statistical function causes actual input function or statistical input data to be appended to the input window, "results" are not appended.
    • Double-click causes the actual algebraic expression that was typed to be appended.
    • Double-click on the rows containing function evaluation and statistical function acts like a single click.
Save Statistics Graphs:
  1. Statistical Graphs can be saved to local file by clicking on 📁 File Folder Icon. Files are saved under Download directory with current time stamp. By default input data and the results are saved to image, it can be turned OFF by selecting Settings button and clicking on "X" radio button in List Answer
  2. Files are saved as JPEG file with .jpg extension.
Save Expressions to File:
  1. All the calculations can be saved to local file by clicking on 📁 File Folder Icon next to Saved Expressions.
  2. Files are saved under Download directory with current time stamp.
Help Screen:
  • Click on Help present in top right corner brings up this screen, click again on to close the help screen.
Settings: Click on Settings present in top right corner to change default values of the configuration supported. Click on Settings again to close the Settings window or click on X button on right side to close it.
  1. Precedence
    • By default Precedence is Turned ON, it can be turned OFF only for Algebraic expression.
    • Precedence can be turned OFF by selecting radio button. Function Mode and Statistics Mode continue to have precedence ON.
  2. My ⌨:
    1. App Keyboard is enabled by default to enter expression, to use your own keyboard select Settings and enable "My ". After enabling, user keyboard will be displayed.
    2. Keyboard symbol on the top right of screen is a toggle button, clicking it first time brings up the keyboard, clicking it second time closes the keyboard. App Keyboard can be also closed by pressing Up Arrow in the actual keyboard button that is in blue color.
    3. To see the list of built in functions supported by the app select √∛... button present in the bottom row of the keyboard ⌨
    4. To see the list of constants supported by the app select αe... button present in the bottom row of the keyboard ⌨
    5. App Keyboard contains Special Keys for backspace, clear input, hide, cursor movement etc.,
  3. Decimal Separator:
    • By default Decimal Separator is Dot(.), it can be changed to Comma (,).
    • This change affects all the three modes.
    • Changing to Comma (,) causes the results to be displayed with Comma, only exception is when 🌐 ("Lang") is selected and the input mode is Arithmetic Expression. Lang has priority over Comma in Arithmetic Expression Mode.
  4. Precision
    • By default Precision for floating point numbers is 6.
    • Precision can be changed to any value between 1 to 16.
  5. Angle
    • By default Trigonometric functions accepts angles in Radian, and inverse trigonometric functions return values in Radian.
    • Selecting "Degree" radio button causes both the input and the result to return in Degrees.
  6. Graph Type
    • By default statistical graph are displayed using Line Graph and can be changed in settings to display other supported graphs.
    • Function Evaluation for single variable are displayed only using Line Graph, it can be disabled by selecting "None" in the Graph Type.
    • For Statistical graphs, Choose ◔(Pie) or 📊(Bar) type to display in different format, to stop displaying graph select "None";
  7. List Answer
    • In Function Evaluation Mode for single variable, graphs are displayed along with resulting points.
    • In Statistics Mode graphs are displayed along with input data and selected function results.
    • By default input Query and their result is saved to JPEG File while saving to file.
    • List Answer can be turned OFF by selecting ; radio button which prevents input Query and their results being saved to JPEG file. It also stop listing points in single variable function causing more screen area for to display graph.
  8. X Label , Y Label
    • Statistical Graphs are displayed with label "X Axis" and "Y Axis". Change "X Axis" or "Y Axis" text to any other desired text to see different Label.
  9. Statistics
    • In Statistics, Functions mean, median, mode, stddev, percentile and sum results are enabled by default. Supported Functions are listed along Statistics , select or unselect desired functions.
Function Reference
  1. Click on in top right corner to display the keyboard and select function button present in the bottom row of the keyboard to see the list of supported functions.
Programmer Notes
  • Only letter 'e' : 'e' is treated as exponent when significand has decimal point, where digits after e are treated as number raised to power of 10, 2.0e2 = 400 ( 2 * 10^2). Digits preceding 'e' must have decimal point. 2e2 is neither hexadecimal nor exponent as it misses 0x and there is no other hexadecimal character a-d,f, and to be exponent significand doesn't have decimal point
  1. Operator ! is considered as a factorial instead of bitwise NOT, use ~ for Bitwise NOT
  2. Operator ^ is considered as an Exponent instead of Bitwise XOR, use ^^ for Bitwise XOR
  3. Operator % is considered as a Percent instead of Remainder operator, use @ for Remainder operator
  4. Operator / does floating point division instead of integer division, so results are displayed with decimal
  5. Unary Prefix Operator -,+,~ are supported e.g., ~-5 = 4
  6. Numbers starting with prefix 0x or having letters A-F are considered Hexadecimal numbers e.g,. 0x10+15+1a=57,
  7. In the above example number 15 is treated as a decimal number as there isn't any 0x prefix.
  8. Hexadecimal floating point numbers represented with p as exponent
  9. e.g., 0x3.a2p3 + 0x23.a4p-2 = 37.972
    • Hexadecimal numbers are supported only in algebraic expression and in Statistics mode.
    • 2SIN30, 2SIN(30), 2*SIN30, 2*SIN(30) are all same resulting in value
    • -1.97606
      • 2*(3+5) is same as 2(3+5)