Something went wrong. Try again.
A ray tracer in Coalton
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637(cl:defpackage #:ray/color (:use #:coalton #:coalton-prelude) (:export #:Color #:black #:white #:mul #:mul-scalar #:add))
(cl:in-package #:ray/color)
(cl:declaim (cl:optimize (cl:speed 3) (cl:safety 0) (cl:debug 0)))
(coalton-toplevel (define-type Color (Color F64 F64 F64)) (declare black Color) (define black (Color 0.0d0 0.0d0 0.0d0)) (declare white Color) (define white (Color 1.0d0 1.0d0 1.0d0)) (declare mul (Color * Color -> Color)) (define (mul (Color r g b) (Color r2 g2 b2)) "Multiply a color by a given scalar value" (Color (* r r2) (* g g2) (* b b2)))
(declare mul-scalar (Color * F64 -> Color)) (define (mul-scalar (Color r g b) v) "Multiply a color by a given scalar value" (Color (* r v) (* g v) (* b v))) (declare add (Color * Color -> Color)) (define (add (Color r1 g1 b1) (Color r2 g2 b2)) (Color (+ r1 r2) (+ g1 g2) (+ b1 b2))))