Calca: the notepad calculator

For years, I’ve been search­ing for a good free-form sym­bolic cal­cu­la­tor pro­gram that works across mul­ti­ple desk­top oper­at­ing sys­tems. I think I’ve finally found one worth men­tion­ing. My goals:

  • Be able to enter expres­sions sim­i­lar to what I could do on a TI-85, back in the day, for exam­ple: 2^2+(2*10)
  • Be able to eas­ily edit and copy previously-entered expres­sions.
  • Input/output hex. I work in hex a lot. This includes expres­sions (0x48+0x16) as well as base con­ver­sion (0xC3 as decimal or 0b110101 as decimal) and bit­wise math (0xFC AND 0x7F).
  • Lightweight. Quick to load, quick to cal­cu­late. Get in, get out. Or leave it run­ning in the back­ground with­out eat­ing a ton of resources. I don’t need or want Mathematica or Maxima.
  • It needs to min­i­mally run on Windows and Mac. Ideally a Linux ver­sion would be avail­able, too. I write code on Linux (work) and Mac (home), but my office Windows box ends up being my doc­u­men­ta­tion ref­er­ence, scratch­pad, cal­cu­la­tor, and every­thing else non-coding because I typ­i­cally run my Linux IDE full-screen (bridged with Synergy, nat­u­rally).

I’d pre­vi­ously got­ten 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 avail­able for all plat­forms, but like many Open Source pro­grams, the oper­a­tion and user inter­face is clunky.

A few months back, I found Calca, “the text edi­tor that loves math,” for Windows and Mac. It lit­er­ally is a text edi­tor. The trick is that it looks for “=” and inter­prets these as def­i­n­i­tion state­ments and it looks for “=>”, and treats these lines as prob­lems to solve. Everything from “=>” to the end of the line is rewrit­ten to become a read-only answer. For exam­ple:


I don’t come close to using all the fea­tures in Calca: func­tions, unit/currency con­ver­sion, matrix math, deriv­a­tives, and so on. My needs are small, but with the pieces I do use, it per­forms extremely well.

A few things I don’t like about Calca:

  • There are no bit­wise shifts or inver­sions. I some­times run into cases where a 32-bit inte­ger is com­posed of sev­eral unaligned bit fields. For instance, bits 5..7 might be one field. It would be great to say: 0x1234 >> 5 & 0b111
  • I fre­quently get con­fused with base con­ver­sion syn­tax. Is it “as dec” or “in dec”? I fre­quently pick the wrong one.
  • Having to type “=>” at the end of each line is typo­graph­i­cally awk­ward. I appre­ci­ate Soulver hav­ing a sec­ond col­umn that auto-updates as you type.
  • It would be nice to have a “pre­vi­ous answer” sym­bol. The TI cal­cu­la­tors auto­mat­i­cally insert an “Ans” vari­able (a place­holder for the pre­vi­ous line’s answer) if you start a new line with an oper­a­tor instead of an operand.

For me, it was worth buy­ing 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.

2 thoughts on “Calca: the notepad calculator”

  1. A sim­ple Python inter­preter has been my go-to com­mand line cal­cu­la­tor since for­ever. Seems like it meets all your require­ments. The same is true of basi­cally any interpreter’s REPL (Python just hap­pens to be one I’m famil­iar with and ubiq­ui­tously avail­able).

    What things like Calca offer are a “work­book” envi­ron­ment, arguably a lit­tle more con­ve­nient for struc­tured cal­cu­la­tions than sim­ple up-arrow recall. It also lets you save work­sheets. For that type of work I just make a spread­sheet...

    1. Good point on the inter­ac­tive inter­preter. I used to use the ‘bc’ com­mand on occa­sion, but could never remem­ber the syn­tax for base con­ver­sion and it doesn’t always do floats well (“8.0 / 5.0″ ends up equal­ing 1 yet “3.4+5.5″ is cor­rectly 8.9).

      I sup­pose spread­sheets work, too, but I almost feel like that’s in the “too heavy” cat­e­gory with other big tools like Mathematica. LibreOffice takes for­ever 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 click­ing in a text file. Only the result is imme­di­ately vis­i­ble, you have to do the F2 edit thing to get at the under­ly­ing math.

      That being said, there are still a num­ber of com­pu­ta­tional tasks that I find spread­sheets to excel at, mainly around puz­zle design and solv­ing. The reg­i­mented grid struc­ture (and its abil­ity to quickly sort on arbi­trary columns) is some­times bet­ter than the text file free-for-all of Calca and friends.

Leave a Reply

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