Skip to content

davidgiven/calculon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

                              CALCULON v0.3.2
                              ===============
                                  
                         Copyright (C) 2018 David Given
                                 2018-01-16
                            (updated 2022-09-18)
            
            
                                 
INTRODUCTION
============

Calculon is a very small but very fast designed to be embedded into other
programs. It uses LLVM to generate high-quality machine code and is ideal for
shaders, user-supplied mathematical formulae, etc.

The Calculon language itself is a pure functional language with support for
upvalues, tail recursion, and bindings to the standard maths library. It
supports arbitrary sized n-vectors, reals and booleans as first-class values.
SIMD instructions are used whereever possible to make vector operations fast.



SETUP
=====

Calculon is shipped as a set of headers, and doesn't need building itself.
To use, all you need to do is to copy the contents of the include directory
somewhere where your program can see it and include 'calculon.h' (plus, of
course, you have to link against LLVM).

If you're not using C++, you're probably out of luck. Get in touch if you
need to use it from another language; a set of C shims is probably fairly
easy.

Some sample programs and a Makefile which builds them are supplied:

fractal
  Generates an image by running the fractal.cal script for each pixel and
  plotting the result as intensity; the supplied fractal.cal draws a
  Mandelbrot.
  
noise
  Illustrates calling out to external functions from with a Calculon script.
  Uses libnoise to generate an image full of Perlin noise.
  
filter
  Provides a very easy way to run Calculon scripts on data: filters numbers
  from stdin to stdout, processing each one with a supplied script.

Assuming the makefile works for you, which it should if you're on OSX or a
reasonable Unixoid, just doing 'make' should build these (they're in the demo
directory).



MORE INFORMATION
================

Calculon's home is at http://cowlark.com/calculon.

Alternatively, you will find a copy of the website (in easier-to-read more-or-
less plain text format) in the doc directory.

Calculon comes with a test suite. To run this, do:

  make test
  
It uses the filter command from the demo directory to actually run the tests
(and will build it automatically). If you make any changes, please run this.
If you find a bug, please write a test that demonstrates it; it will make my
life much easier.



THE AUTHOR
==========

Calculon was written by me, David Given. You may contact me at [email protected],
or visit my website at http://www.cowlark.com. There may or may not be
anything interesting there.



LICENSING
=========

Calculon is licensed under the Simplified BSD license. See COPYING for the
full text.

About

A very small, fast shader language using LLVM.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages