Calca: the notepad calculator

For years, I’ve been searching for a good free-form symbolic calculator program that works across multiple desktop operating systems. I think I’ve finally found one worth mentioning. My goals:

  • Be able to enter expressions similar to what I could do on a TI-85, back in the day, for example: 2^2+(2*10)
  • Be able to easily edit and copy previously-entered expressions.
  • Input/output hex. I work in hex a lot. This includes expressions (0x48+0x16) as well as base conversion (0xC3 as decimal or 0b110101 as decimal) and bitwise math (0xFC AND 0x7F).
  • Lightweight. Quick to load, quick to calculate. Get in, get out. Or leave it running in the background without eating a ton of resources. I don’t need or want Mathematica or Maxima.
  • It needs to minimally run on Windows and Mac. Ideally a Linux version would be available, too. I write code on Linux (work) and Mac (home), but my office Windows box ends up being my documentation reference, scratchpad, calculator, and everything else non-coding because I typically run my Linux IDE full-screen (bridged with Synergy, naturally).

I’d previously gotten hooked on Soulver. It’s great on the Mac, but there are not Windows or Linux ports. There is an iOS port, but I can’t stand the data entry. SpeedCrunch is available for all platforms, but like many Open Source programs, the operation and user interface is clunky.

A few months back, I found Calca, “the text editor that loves math,” for Windows and Mac. It literally is a text editor. The trick is that it looks for “=” and interprets these as definition statements and it looks for “=>”, and treats these lines as problems to solve. Everything from “=>” to the end of the line is rewritten to become a read-only answer. For example:

calca

I don’t come close to using all the features in Calca: functions, unit/currency conversion, matrix math, derivatives, and so on. My needs are small, but with the pieces I do use, it performs extremely well.

A few things I don’t like about Calca:

  • There are no bitwise shifts or inversions. I sometimes run into cases where a 32-bit integer is composed of several unaligned bit fields. For instance, bits 5..7 might be one field. It would be great to say: 0x1234 >> 5 & 0b111
  • I frequently get confused with base conversion syntax. Is it “as dec” or “in dec”? I frequently pick the wrong one.
  • Having to type “=>” at the end of each line is typographically awkward. I appreciate Soulver having a second column that auto-updates as you type.
  • It would be nice to have a “previous answer” symbol. The TI calculators automatically insert an “Ans” variable (a placeholder for the previous line’s answer) if you start a new line with an operator instead of an operand.

For me, it was worth buying both a Windows and Mac license. I use it all the time.

Posted in: Software Work

Published by

Brian Enigma

Brian Enigma is a Portlander, manipulator of atoms & bits, minor-league blogger, and all-around great guy. He typically writes about the interesting “maker” projects he's working on, but sometimes veers off into puzzles, software, games, local news, and current events.

3 thoughts on “Calca: the notepad calculator”

  1. A simple Python interpreter has been my go-to command line calculator since forever. Seems like it meets all your requirements. The same is true of basically any interpreter’s REPL (Python just happens to be one I’m familiar with and ubiquitously available).

    What things like Calca offer are a “workbook” environment, arguably a little more convenient for structured calculations than simple up-arrow recall. It also lets you save worksheets. For that type of work I just make a spreadsheet…

    1. Good point on the interactive interpreter. I used to use the ‘bc’ command on occasion, but could never remember the syntax for base conversion and it doesn’t always do floats well (“8.0 / 5.0” ends up equaling 1 yet “3.4+5.5” is correctly 8.9).

      I suppose spreadsheets work, too, but I almost feel like that’s in the “too heavy” category with other big tools like Mathematica. LibreOffice takes forever to load and is bloated enough that I’m not sure I’d like it open all the time. It’s also not as easy to edit as clicking in a text file. Only the result is immediately visible, you have to do the F2 edit thing to get at the underlying math.

      That being said, there are still a number of computational tasks that I find spreadsheets to excel at, mainly around puzzle design and solving. The regimented grid structure (and its ability to quickly sort on arbitrary columns) is sometimes better than the text file free-for-all of Calca and friends.

  2. You should try OpalCalc. It’s moderately priced and does calculations on the fly. Plus you can intermix text and calculations as well, which can be very helpful for some (though perhaps not for you).

Leave a Reply to Dan E. Cancel reply

Your email address will not be published. Required fields are marked *