Frink is a calculating tool and programming language designed to help you in the real world. It tracks units of measurement throughout all calculations and ensures that answers are correct. It converts between systems of measurement, and has a huge library of physical data. It is both a simple calculator for quick calculations and a full-fledged programming language for large tasks. It draws high-quality graphics, handles conversions between time zones, currencies, and historical values of the U.S. dollar and the British pound, translates between several languages, does date/time math, and more.
| Tags | education Internet Scientific/Engineering Astronomy Software Development Interpreters Text Processing Mathematics General |
|---|---|
| Licenses | Freeware Other |
| Operating Systems | OS Independent SymbianOS |
| Implementation | Java |
Recent releases


Changes: This release fixes some "Class not found" exceptions that may have occurred when calling some functions, notably graphics.write[] and TAIMinusUTC[]. In addition, a problem was corrected involving fonts which had dimensions of length, for example, g.font["SansSerif", 1 inch]. The sun.frink astronomical library has also been enhanced to allow drawing of the moon's crescent at any given time.


Changes: This release adds the ability to load bitmap images (e.g. JPEG, GIF, PNG) from files or URLs and draw them onscreen, scale them, add them to graphics, draw on images, add watermarks to images, save the results to a file, and more. In addition, functions to control the drawing of graphics to a file have been added.


Changes: This release improves the graphics library by adding several new curve types including ellipses and circular arcs. This enables drawing perfect circles or ellipses with transparent "holes" in them, which was previously impossible. In addition, when printing graphics, the background color is now rendered.


Changes: The graphics library now has the ability to draw and fill complex shapes using a combination of lines and cubic and quadratic Bezier curves. This also allows proper rendering of objects with "holes" in them.


Changes: This release fixes overflow problems in certain cases of the exponentiation operator where the exponent is an exact rational number. In addition, some unnecessary messages were suppressed when calling the graphics.show[] method at the end of a program.
- All comments
Recent commentsGood
Thanks, I like it very much.
Re: version info
Oops, something weird happened with the Command-Line Options link above.
Re: version info
> There doesn't seem to be any way to find
> out what version of
> frink a particular copy is, e.g. a -v
> command line option.
> Is there? If not, how come?
>
Because ye 'ave never asked, Bill, me laddie! I've had some version code floating around, but I never checked it in. You'll note that the current version of Frink (2005-12-14) does have a -v or --version command-line switch to display the version number and exit. Please see the Command-Line Options section of the documentation. Hope this helps! I may add a feature to access this programmatically later.
version info
There doesn't seem to be any way to find out what version of
frink a particular copy is, e.g. a -v command line option.
Is there? If not, how come?
Re: Frink missing Saybolt seconds?
Thanks for the references on the viscosity measurements! I looked a bit further and, as you mentioned, these numbers seem to be empirically measured at only a couple of very specific temperatures, so a conversion to a single viscosity value may be pretty questionable. I'll do some further research to see if this can be turned into a more continuous function for a reasonable temperature range.
There are lots of similar physical-chemical measurements that I'd like to put into Frink, but to do it right, there are usually many parameters that need to be specified. For example, if you want to know the density of carbon, you'd also need to specify at what temperature and pressure, and what phase (e.g. graphite or diamond or buckyballs?) It's all feasible, but the number of parameters that one needs to specify (or implicitly accept defaults for) may be large.
Thanks for the suggestions! If you can suggest an interpolating function, let me know!