#!/usr/bin/perl -w
use strict;
my $pi = 2 * atan2(1, 0);
for (0..255) {
	# limit from blue to red
	my $n = (255 - $_) * 2 / 3;
	# phase adjust
	my $r = ($n + 255 * 1 / 3) % 256;
	my $g = ($n + 255 * 0 / 3) % 256;
	my $b = ($n + 255 * 2 / 3) % 256;
	# convert to sinusoid
	$r = $r <= 256 * 2 / 3 ? (1 - cos(3 * $pi * $r / 256)) / 2 : 0;
	$g = $g <= 256 * 2 / 3 ? (1 - cos(3 * $pi * $g / 256)) / 2 : 0;
	$b = $b <= 256 * 2 / 3 ? (1 - cos(3 * $pi * $b / 256)) / 2 : 0;
	# convert float to char
	$r = int($r * 256);
	$g = int($g * 256);
	$b = int($b * 256);
	printf "%03d %03d %03d\n", $r, $g, $b;
}