star-cmap

Mapping values onto color ramps
git clone git://git.meso-star.fr/star-cmap.git
Log | Files | Refs | README | LICENSE

commit bbb770c0981042c86fa3e15fa99d4616e13d7d71
parent 631c8e1b692060fdda8e03290cef2ef1dcb6e94a
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon, 16 Nov 2020 12:04:30 +0100

Fix MSVC build

Diffstat:
Msrc/scmap.h | 3++-
Msrc/scmap_palettes.c | 674++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/test_scmap.c | 2+-
Msrc/test_scmap_palettes.c | 6+++---
4 files changed, 343 insertions(+), 342 deletions(-)

diff --git a/src/scmap.h b/src/scmap.h @@ -47,7 +47,8 @@ struct scmap_palette { size_t ncolors; /* #colors */ void* context; }; -static const struct scmap_palette SCMAP_PALETTE_NULL; +#define SCMAP_PALETTE_NULL__ {NULL, 0, NULL} +static const struct scmap_palette SCMAP_PALETTE_NULL = SCMAP_PALETTE_NULL__; /* Forward declarations */ struct scmap; diff --git a/src/scmap_palettes.c b/src/scmap_palettes.c @@ -17,464 +17,464 @@ #include <string.h> static const double accent[] = { - (double)0x7f/255.0, (double)0xc9/255.0, (double)0x7f/255.0, - (double)0xbe/255.0, (double)0xae/255.0, (double)0xd4/255.0, - (double)0xfd/255.0, (double)0xc0/255.0, (double)0x86/255.0, - (double)0xff/255.0, (double)0xff/255.0, (double)0x99/255.0, - (double)0x38/255.0, (double)0x6c/255.0, (double)0xb0/255.0, - (double)0xf0/255.0, (double)0x02/255.0, (double)0x7f/255.0, - (double)0xbf/255.0, (double)0x5b/255.0, (double)0x17/255.0, - (double)0x66/255.0, (double)0x66/255.0, (double)0x66/255.0 + 0.498039, 0.788235, 0.498039, + 0.745098, 0.682353, 0.831373, + 0.992157, 0.752941, 0.525490, + 1.000000, 1.000000, 0.600000, + 0.219608, 0.423529, 0.690196, + 0.941176, 0.007843, 0.498039, + 0.749020, 0.356863, 0.090196, + 0.400000, 0.400000, 0.400000 }; static const double blues[] = { - (double)0xf7/255.0, (double)0xfb/255.0, (double)0xff/255.0, - (double)0xde/255.0, (double)0xeb/255.0, (double)0xf7/255.0, - (double)0xc6/255.0, (double)0xdb/255.0, (double)0xef/255.0, - (double)0x9e/255.0, (double)0xca/255.0, (double)0xe1/255.0, - (double)0x6b/255.0, (double)0xae/255.0, (double)0xd6/255.0, - (double)0x42/255.0, (double)0x92/255.0, (double)0xc6/255.0, - (double)0x21/255.0, (double)0x71/255.0, (double)0xb5/255.0, - (double)0x08/255.0, (double)0x45/255.0, (double)0x94/255.0 + 0.968627, 0.984314, 1.000000, + 0.870588, 0.921569, 0.968627, + 0.776471, 0.858824, 0.937255, + 0.619608, 0.792157, 0.882353, + 0.419608, 0.682353, 0.839216, + 0.258824, 0.572549, 0.776471, + 0.129412, 0.443137, 0.709804, + 0.031373, 0.270588, 0.580392 }; static const double brbg[] = { - (double)0x8c/255.0, (double)0x51/255.0, (double)0x0a/255.0, - (double)0xbf/255.0, (double)0x81/255.0, (double)0x2d/255.0, - (double)0xdf/255.0, (double)0xc2/255.0, (double)0x7d/255.0, - (double)0xf6/255.0, (double)0xe8/255.0, (double)0xc3/255.0, - (double)0xc7/255.0, (double)0xea/255.0, (double)0xe5/255.0, - (double)0x80/255.0, (double)0xcd/255.0, (double)0xc1/255.0, - (double)0x35/255.0, (double)0x97/255.0, (double)0x8f/255.0, - (double)0x01/255.0, (double)0x66/255.0, (double)0x5e/255.0 + 0.549020, 0.317647, 0.039216, + 0.749020, 0.505882, 0.176471, + 0.874510, 0.760784, 0.490196, + 0.964706, 0.909804, 0.764706, + 0.780392, 0.917647, 0.898039, + 0.501961, 0.803922, 0.756863, + 0.207843, 0.592157, 0.560784, + 0.003922, 0.400000, 0.368627 }; static const double bugn[] = { - (double)0xf7/255.0, (double)0xfc/255.0, (double)0xfd/255.0, - (double)0xe5/255.0, (double)0xf5/255.0, (double)0xf9/255.0, - (double)0xcc/255.0, (double)0xec/255.0, (double)0xe6/255.0, - (double)0x99/255.0, (double)0xd8/255.0, (double)0xc9/255.0, - (double)0x66/255.0, (double)0xc2/255.0, (double)0xa4/255.0, - (double)0x41/255.0, (double)0xae/255.0, (double)0x76/255.0, - (double)0x23/255.0, (double)0x8b/255.0, (double)0x45/255.0, - (double)0x00/255.0, (double)0x58/255.0, (double)0x24/255.0 + 0.968627, 0.988235, 0.992157, + 0.898039, 0.960784, 0.976471, + 0.800000, 0.925490, 0.901961, + 0.600000, 0.847059, 0.788235, + 0.400000, 0.760784, 0.643137, + 0.254902, 0.682353, 0.462745, + 0.137255, 0.545098, 0.270588, + 0.000000, 0.345098, 0.141176 }; static const double bupu[] = { - (double)0xf7/255.0, (double)0xfc/255.0, (double)0xfd/255.0, - (double)0xe0/255.0, (double)0xec/255.0, (double)0xf4/255.0, - (double)0xbf/255.0, (double)0xd3/255.0, (double)0xe6/255.0, - (double)0x9e/255.0, (double)0xbc/255.0, (double)0xda/255.0, - (double)0x8c/255.0, (double)0x96/255.0, (double)0xc6/255.0, - (double)0x8c/255.0, (double)0x6b/255.0, (double)0xb1/255.0, - (double)0x88/255.0, (double)0x41/255.0, (double)0x9d/255.0, - (double)0x6e/255.0, (double)0x01/255.0, (double)0x6b/255.0 + 0.968627, 0.988235, 0.992157, + 0.878431, 0.925490, 0.956863, + 0.749020, 0.827451, 0.901961, + 0.619608, 0.737255, 0.854902, + 0.549020, 0.588235, 0.776471, + 0.549020, 0.419608, 0.694118, + 0.533333, 0.254902, 0.615686, + 0.431373, 0.003922, 0.419608 }; static const double chromajs[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xe0/255.0, - (double)0xff/255.0, (double)0xdf/255.0, (double)0xb8/255.0, - (double)0xff/255.0, (double)0xbc/255.0, (double)0x94/255.0, - (double)0xff/255.0, (double)0x97/255.0, (double)0x77/255.0, - (double)0xff/255.0, (double)0x69/255.0, (double)0x62/255.0, - (double)0xee/255.0, (double)0x42/255.0, (double)0x56/255.0, - (double)0xd2/255.0, (double)0x1f/255.0, (double)0x47/255.0, - (double)0xb0/255.0, (double)0x06/255.0, (double)0x2c/255.0, - (double)0x8b/255.0, (double)0x00/255.0, (double)0x00/255.0 + 1.000000, 1.000000, 0.878431, + 1.000000, 0.874510, 0.721569, + 1.000000, 0.737255, 0.580392, + 1.000000, 0.592157, 0.466667, + 1.000000, 0.411765, 0.384314, + 0.933333, 0.258824, 0.337255, + 0.823529, 0.121569, 0.278431, + 0.690196, 0.023529, 0.172549, + 0.545098, 0.000000, 0.000000 }; static const double dark2[] = { - (double)0x1b/255.0, (double)0x9e/255.0, (double)0x77/255.0, - (double)0xd9/255.0, (double)0x5f/255.0, (double)0x02/255.0, - (double)0x75/255.0, (double)0x70/255.0, (double)0xb3/255.0, - (double)0xe7/255.0, (double)0x29/255.0, (double)0x8a/255.0, - (double)0x66/255.0, (double)0xa6/255.0, (double)0x1e/255.0, - (double)0xe6/255.0, (double)0xab/255.0, (double)0x02/255.0, - (double)0xa6/255.0, (double)0x76/255.0, (double)0x1d/255.0, - (double)0x66/255.0, (double)0x66/255.0, (double)0x66/255.0 + 0.105882, 0.619608, 0.466667, + 0.850980, 0.372549, 0.007843, + 0.458824, 0.439216, 0.701961, + 0.905882, 0.160784, 0.541176, + 0.400000, 0.650980, 0.117647, + 0.901961, 0.670588, 0.007843, + 0.650980, 0.462745, 0.113725, + 0.400000, 0.400000, 0.400000 }; static const double gnbu[] = { - (double)0xf7/255.0, (double)0xfc/255.0, (double)0xf0/255.0, - (double)0xe0/255.0, (double)0xf3/255.0, (double)0xdb/255.0, - (double)0xcc/255.0, (double)0xeb/255.0, (double)0xc5/255.0, - (double)0xa8/255.0, (double)0xdd/255.0, (double)0xb5/255.0, - (double)0x7b/255.0, (double)0xcc/255.0, (double)0xc4/255.0, - (double)0x4e/255.0, (double)0xb3/255.0, (double)0xd3/255.0, - (double)0x2b/255.0, (double)0x8c/255.0, (double)0xbe/255.0, - (double)0x08/255.0, (double)0x58/255.0, (double)0x9e/255.0 + 0.968627, 0.988235, 0.941176, + 0.878431, 0.952941, 0.858824, + 0.800000, 0.921569, 0.772549, + 0.658824, 0.866667, 0.709804, + 0.482353, 0.800000, 0.768627, + 0.305882, 0.701961, 0.827451, + 0.168627, 0.549020, 0.745098, + 0.031373, 0.345098, 0.619608 }; static const double gnpu[] = { - (double)0x39/255.0, (double)0x63/255.0, (double)0x53/255.0, - (double)0x0d/255.0, (double)0xb1/255.0, (double)0x4b/255.0, - (double)0x6d/255.0, (double)0xc0/255.0, (double)0x67/255.0, - (double)0xab/255.0, (double)0xd6/255.0, (double)0x9b/255.0, - (double)0xda/255.0, (double)0xea/255.0, (double)0xc1/255.0, - (double)0xdf/255.0, (double)0xcc/255.0, (double)0xe4/255.0, - (double)0xc7/255.0, (double)0xb2/255.0, (double)0xd6/255.0, - (double)0x94/255.0, (double)0x74/255.0, (double)0xb4/255.0, - (double)0x75/255.0, (double)0x40/255.0, (double)0x98/255.0, - (double)0x50/255.0, (double)0x49/255.0, (double)0x71/255.0 + 0.223529, 0.388235, 0.325490, + 0.050980, 0.694118, 0.294118, + 0.427451, 0.752941, 0.403922, + 0.670588, 0.839216, 0.607843, + 0.854902, 0.917647, 0.756863, + 0.874510, 0.800000, 0.894118, + 0.780392, 0.698039, 0.839216, + 0.580392, 0.454902, 0.705882, + 0.458824, 0.250980, 0.596078, + 0.313725, 0.286275, 0.443137 }; static const double greens[] = { - (double)0xf7/255.0, (double)0xfc/255.0, (double)0xf5/255.0, - (double)0xe5/255.0, (double)0xf5/255.0, (double)0xe0/255.0, - (double)0xc7/255.0, (double)0xe9/255.0, (double)0xc0/255.0, - (double)0xa1/255.0, (double)0xd9/255.0, (double)0x9b/255.0, - (double)0x74/255.0, (double)0xc4/255.0, (double)0x76/255.0, - (double)0x41/255.0, (double)0xab/255.0, (double)0x5d/255.0, - (double)0x23/255.0, (double)0x8b/255.0, (double)0x45/255.0, - (double)0x00/255.0, (double)0x5a/255.0, (double)0x32/255.0 + 0.968627, 0.988235, 0.960784, + 0.898039, 0.960784, 0.878431, + 0.780392, 0.913725, 0.752941, + 0.631373, 0.850980, 0.607843, + 0.454902, 0.768627, 0.462745, + 0.254902, 0.670588, 0.364706, + 0.137255, 0.545098, 0.270588, + 0.000000, 0.352941, 0.196078 }; static const double greys[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xff/255.0, - (double)0xf0/255.0, (double)0xf0/255.0, (double)0xf0/255.0, - (double)0xd9/255.0, (double)0xd9/255.0, (double)0xd9/255.0, - (double)0xbd/255.0, (double)0xbd/255.0, (double)0xbd/255.0, - (double)0x96/255.0, (double)0x96/255.0, (double)0x96/255.0, - (double)0x73/255.0, (double)0x73/255.0, (double)0x73/255.0, - (double)0x52/255.0, (double)0x52/255.0, (double)0x52/255.0, - (double)0x25/255.0, (double)0x25/255.0, (double)0x25/255.0 + 1.000000, 1.000000, 1.000000, + 0.941176, 0.941176, 0.941176, + 0.850980, 0.850980, 0.850980, + 0.741176, 0.741176, 0.741176, + 0.588235, 0.588235, 0.588235, + 0.450980, 0.450980, 0.450980, + 0.321569, 0.321569, 0.321569, + 0.145098, 0.145098, 0.145098 }; static const double oranges[] = { - (double)0xff/255.0, (double)0xf5/255.0, (double)0xeb/255.0, - (double)0xfe/255.0, (double)0xe6/255.0, (double)0xce/255.0, - (double)0xfd/255.0, (double)0xd0/255.0, (double)0xa2/255.0, - (double)0xfd/255.0, (double)0xae/255.0, (double)0x6b/255.0, - (double)0xfd/255.0, (double)0x8d/255.0, (double)0x3c/255.0, - (double)0xf1/255.0, (double)0x69/255.0, (double)0x13/255.0, - (double)0xd9/255.0, (double)0x48/255.0, (double)0x01/255.0, - (double)0x8c/255.0, (double)0x2d/255.0, (double)0x04/255.0 + 1.000000, 0.960784, 0.921569, + 0.996078, 0.901961, 0.807843, + 0.992157, 0.815686, 0.635294, + 0.992157, 0.682353, 0.419608, + 0.992157, 0.552941, 0.235294, + 0.945098, 0.411765, 0.074510, + 0.850980, 0.282353, 0.003922, + 0.549020, 0.176471, 0.015686 }; static const double orrd[] = { - (double)0xff/255.0, (double)0xf7/255.0, (double)0xec/255.0, - (double)0xfe/255.0, (double)0xe8/255.0, (double)0xc8/255.0, - (double)0xfd/255.0, (double)0xd4/255.0, (double)0x9e/255.0, - (double)0xfd/255.0, (double)0xbb/255.0, (double)0x84/255.0, - (double)0xfc/255.0, (double)0x8d/255.0, (double)0x59/255.0, - (double)0xef/255.0, (double)0x65/255.0, (double)0x48/255.0, - (double)0xd7/255.0, (double)0x30/255.0, (double)0x1f/255.0, - (double)0x99/255.0, (double)0x00/255.0, (double)0x00/255.0 + 1.000000, 0.968627, 0.925490, + 0.996078, 0.909804, 0.784314, + 0.992157, 0.831373, 0.619608, + 0.992157, 0.733333, 0.517647, + 0.988235, 0.552941, 0.349020, + 0.937255, 0.396078, 0.282353, + 0.843137, 0.188235, 0.121569, + 0.600000, 0.000000, 0.000000 }; static const double paired[] = { - (double)0xa6/255.0, (double)0xce/255.0, (double)0xe3/255.0, - (double)0x1f/255.0, (double)0x78/255.0, (double)0xb4/255.0, - (double)0xb2/255.0, (double)0xdf/255.0, (double)0x8a/255.0, - (double)0x33/255.0, (double)0xa0/255.0, (double)0x2c/255.0, - (double)0xfb/255.0, (double)0x9a/255.0, (double)0x99/255.0, - (double)0xe3/255.0, (double)0x1a/255.0, (double)0x1c/255.0, - (double)0xfd/255.0, (double)0xbf/255.0, (double)0x6f/255.0, - (double)0xff/255.0, (double)0x7f/255.0, (double)0x00/255.0 + 0.650980, 0.807843, 0.890196, + 0.121569, 0.470588, 0.705882, + 0.698039, 0.874510, 0.541176, + 0.200000, 0.627451, 0.172549, + 0.984314, 0.603922, 0.600000, + 0.890196, 0.101961, 0.109804, + 0.992157, 0.749020, 0.435294, + 1.000000, 0.498039, 0.000000 }; static const double parula[] = { - (double)0x35/255.0, (double)0x2a/255.0, (double)0x87/255.0, - (double)0x03/255.0, (double)0x63/255.0, (double)0xe1/255.0, - (double)0x14/255.0, (double)0x85/255.0, (double)0xd4/255.0, - (double)0x06/255.0, (double)0xa7/255.0, (double)0xc6/255.0, - (double)0x38/255.0, (double)0xb9/255.0, (double)0x9e/255.0, - (double)0x92/255.0, (double)0xbf/255.0, (double)0x73/255.0, - (double)0xd9/255.0, (double)0xba/255.0, (double)0x56/255.0, - (double)0xfc/255.0, (double)0xce/255.0, (double)0x2e/255.0, - (double)0xf9/255.0, (double)0xfb/255.0, (double)0x0e/255.0 + 0.207843, 0.164706, 0.529412, + 0.011765, 0.388235, 0.882353, + 0.078431, 0.521569, 0.831373, + 0.023529, 0.654902, 0.776471, + 0.219608, 0.725490, 0.619608, + 0.572549, 0.749020, 0.450980, + 0.850980, 0.729412, 0.337255, + 0.988235, 0.807843, 0.180392, + 0.976471, 0.984314, 0.054902 }; static const double pastel1[] = { - (double)0xfb/255.0, (double)0xb4/255.0, (double)0xae/255.0, - (double)0xb3/255.0, (double)0xcd/255.0, (double)0xe3/255.0, - (double)0xcc/255.0, (double)0xeb/255.0, (double)0xc5/255.0, - (double)0xde/255.0, (double)0xcb/255.0, (double)0xe4/255.0, - (double)0xfe/255.0, (double)0xd9/255.0, (double)0xa6/255.0, - (double)0xff/255.0, (double)0xff/255.0, (double)0xcc/255.0, - (double)0xe5/255.0, (double)0xd8/255.0, (double)0xbd/255.0, - (double)0xfd/255.0, (double)0xda/255.0, (double)0xec/255.0 + 0.984314, 0.705882, 0.682353, + 0.701961, 0.803922, 0.890196, + 0.800000, 0.921569, 0.772549, + 0.870588, 0.796078, 0.894118, + 0.996078, 0.850980, 0.650980, + 1.000000, 1.000000, 0.800000, + 0.898039, 0.847059, 0.741176, + 0.992157, 0.854902, 0.925490 }; static const double pastel2[] = { - (double)0xb3/255.0, (double)0xe2/255.0, (double)0xcd/255.0, - (double)0xfd/255.0, (double)0xcd/255.0, (double)0xac/255.0, - (double)0xcd/255.0, (double)0xb5/255.0, (double)0xe8/255.0, - (double)0xf4/255.0, (double)0xca/255.0, (double)0xe4/255.0, - (double)0xd6/255.0, (double)0xf5/255.0, (double)0xc9/255.0, - (double)0xff/255.0, (double)0xf2/255.0, (double)0xae/255.0, - (double)0xf1/255.0, (double)0xe2/255.0, (double)0xcc/255.0, - (double)0xcc/255.0, (double)0xcc/255.0, (double)0xcc/255.0 + 0.701961, 0.886275, 0.803922, + 0.992157, 0.803922, 0.674510, + 0.803922, 0.709804, 0.909804, + 0.956863, 0.792157, 0.894118, + 0.839216, 0.960784, 0.788235, + 1.000000, 0.949020, 0.682353, + 0.945098, 0.886275, 0.800000, + 0.800000, 0.800000, 0.800000 }; static const double piyg[] = { - (double)0xc5/255.0, (double)0x1b/255.0, (double)0x7d/255.0, - (double)0xde/255.0, (double)0x77/255.0, (double)0xae/255.0, - (double)0xf1/255.0, (double)0xb6/255.0, (double)0xda/255.0, - (double)0xfd/255.0, (double)0xe0/255.0, (double)0xef/255.0, - (double)0xe6/255.0, (double)0xf5/255.0, (double)0xd0/255.0, - (double)0xb8/255.0, (double)0xe1/255.0, (double)0x86/255.0, - (double)0x7f/255.0, (double)0xbc/255.0, (double)0x41/255.0, - (double)0x4d/255.0, (double)0x92/255.0, (double)0x21/255.0 + 0.772549, 0.105882, 0.490196, + 0.870588, 0.466667, 0.682353, + 0.945098, 0.713725, 0.854902, + 0.992157, 0.878431, 0.937255, + 0.901961, 0.960784, 0.815686, + 0.721569, 0.882353, 0.525490, + 0.498039, 0.737255, 0.254902, + 0.301961, 0.572549, 0.129412 }; static const double prgn[] = { - (double)0x76/255.0, (double)0x2a/255.0, (double)0x83/255.0, - (double)0x99/255.0, (double)0x70/255.0, (double)0xab/255.0, - (double)0xc2/255.0, (double)0xa5/255.0, (double)0xcf/255.0, - (double)0xe7/255.0, (double)0xd4/255.0, (double)0xe8/255.0, - (double)0xd9/255.0, (double)0xf0/255.0, (double)0xd3/255.0, - (double)0xa6/255.0, (double)0xdb/255.0, (double)0xa0/255.0, - (double)0x5a/255.0, (double)0xae/255.0, (double)0x61/255.0, - (double)0x1b/255.0, (double)0x78/255.0, (double)0x37/255.0 + 0.462745, 0.164706, 0.513725, + 0.600000, 0.439216, 0.670588, + 0.760784, 0.647059, 0.811765, + 0.905882, 0.831373, 0.909804, + 0.850980, 0.941176, 0.827451, + 0.650980, 0.858824, 0.627451, + 0.352941, 0.682353, 0.380392, + 0.105882, 0.470588, 0.215686 }; static const double pubu[] = { - (double)0xff/255.0, (double)0xf7/255.0, (double)0xfb/255.0, - (double)0xec/255.0, (double)0xe7/255.0, (double)0xf2/255.0, - (double)0xd0/255.0, (double)0xd1/255.0, (double)0xe6/255.0, - (double)0xa6/255.0, (double)0xbd/255.0, (double)0xdb/255.0, - (double)0x74/255.0, (double)0xa9/255.0, (double)0xcf/255.0, - (double)0x36/255.0, (double)0x90/255.0, (double)0xc0/255.0, - (double)0x05/255.0, (double)0x70/255.0, (double)0xb0/255.0, - (double)0x03/255.0, (double)0x4e/255.0, (double)0x7b/255.0 + 1.000000, 0.968627, 0.984314, + 0.925490, 0.905882, 0.949020, + 0.815686, 0.819608, 0.901961, + 0.650980, 0.741176, 0.858824, + 0.454902, 0.662745, 0.811765, + 0.211765, 0.564706, 0.752941, + 0.019608, 0.439216, 0.690196, + 0.011765, 0.305882, 0.482353 }; static const double pubugn[] = { - (double)0xff/255.0, (double)0xf7/255.0, (double)0xfb/255.0, - (double)0xec/255.0, (double)0xe7/255.0, (double)0xf0/255.0, - (double)0xd0/255.0, (double)0xd1/255.0, (double)0xe6/255.0, - (double)0xa6/255.0, (double)0xbd/255.0, (double)0xdb/255.0, - (double)0x67/255.0, (double)0xa9/255.0, (double)0xcf/255.0, - (double)0x36/255.0, (double)0x90/255.0, (double)0xc0/255.0, - (double)0x02/255.0, (double)0x81/255.0, (double)0x8a/255.0, - (double)0x01/255.0, (double)0x65/255.0, (double)0x40/255.0 + 1.000000, 0.968627, 0.984314, + 0.925490, 0.905882, 0.941176, + 0.815686, 0.819608, 0.901961, + 0.650980, 0.741176, 0.858824, + 0.403922, 0.662745, 0.811765, + 0.211765, 0.564706, 0.752941, + 0.007843, 0.505882, 0.541176, + 0.003922, 0.396078, 0.250980 }; static const double puor[] = { - (double)0xb3/255.0, (double)0x58/255.0, (double)0x06/255.0, - (double)0xe0/255.0, (double)0x82/255.0, (double)0x14/255.0, - (double)0xfd/255.0, (double)0xb8/255.0, (double)0x63/255.0, - (double)0xfe/255.0, (double)0xe0/255.0, (double)0xb6/255.0, - (double)0xd8/255.0, (double)0xda/255.0, (double)0xeb/255.0, - (double)0xb2/255.0, (double)0xab/255.0, (double)0xd2/255.0, - (double)0x80/255.0, (double)0x73/255.0, (double)0xac/255.0, - (double)0x54/255.0, (double)0x27/255.0, (double)0x88/255.0 + 0.701961, 0.345098, 0.023529, + 0.878431, 0.509804, 0.078431, + 0.992157, 0.721569, 0.388235, + 0.996078, 0.878431, 0.713725, + 0.847059, 0.854902, 0.921569, + 0.698039, 0.670588, 0.823529, + 0.501961, 0.450980, 0.674510, + 0.329412, 0.152941, 0.533333 }; static const double purd[] = { - (double)0xf7/255.0, (double)0xf4/255.0, (double)0xf9/255.0, - (double)0xe7/255.0, (double)0xe1/255.0, (double)0xef/255.0, - (double)0xd4/255.0, (double)0xb9/255.0, (double)0xda/255.0, - (double)0xc9/255.0, (double)0x94/255.0, (double)0xc7/255.0, - (double)0xdf/255.0, (double)0x65/255.0, (double)0xb0/255.0, - (double)0xe7/255.0, (double)0x29/255.0, (double)0x8a/255.0, - (double)0xce/255.0, (double)0x12/255.0, (double)0x56/255.0, - (double)0x91/255.0, (double)0x00/255.0, (double)0x3f/255.0 + 0.968627, 0.956863, 0.976471, + 0.905882, 0.882353, 0.937255, + 0.831373, 0.725490, 0.854902, + 0.788235, 0.580392, 0.780392, + 0.874510, 0.396078, 0.690196, + 0.905882, 0.160784, 0.541176, + 0.807843, 0.070588, 0.337255, + 0.568627, 0.000000, 0.247059 }; static const double purples[] = { - (double)0xfc/255.0, (double)0xfb/255.0, (double)0xfd/255.0, - (double)0xef/255.0, (double)0xed/255.0, (double)0xf5/255.0, - (double)0xda/255.0, (double)0xda/255.0, (double)0xeb/255.0, - (double)0xbc/255.0, (double)0xbd/255.0, (double)0xdc/255.0, - (double)0x9e/255.0, (double)0x9a/255.0, (double)0xc8/255.0, - (double)0x80/255.0, (double)0x7d/255.0, (double)0xba/255.0, - (double)0x6a/255.0, (double)0x51/255.0, (double)0xa3/255.0, - (double)0x4a/255.0, (double)0x14/255.0, (double)0x86/255.0 + 0.988235, 0.984314, 0.992157, + 0.937255, 0.929412, 0.960784, + 0.854902, 0.854902, 0.921569, + 0.737255, 0.741176, 0.862745, + 0.619608, 0.603922, 0.784314, + 0.501961, 0.490196, 0.729412, + 0.415686, 0.317647, 0.639216, + 0.290196, 0.078431, 0.525490 }; static const double rdbu[] = { - (double)0xb2/255.0, (double)0x18/255.0, (double)0x2b/255.0, - (double)0xd6/255.0, (double)0x60/255.0, (double)0x4d/255.0, - (double)0xf4/255.0, (double)0xa5/255.0, (double)0x82/255.0, - (double)0xfd/255.0, (double)0xdb/255.0, (double)0xc7/255.0, - (double)0xd1/255.0, (double)0xe5/255.0, (double)0xf0/255.0, - (double)0x92/255.0, (double)0xc5/255.0, (double)0xde/255.0, - (double)0x43/255.0, (double)0x93/255.0, (double)0xc3/255.0, - (double)0x21/255.0, (double)0x66/255.0, (double)0xac/255.0 + 0.698039, 0.094118, 0.168627, + 0.839216, 0.376471, 0.301961, + 0.956863, 0.647059, 0.509804, + 0.992157, 0.858824, 0.780392, + 0.819608, 0.898039, 0.941176, + 0.572549, 0.772549, 0.870588, + 0.262745, 0.576471, 0.764706, + 0.129412, 0.400000, 0.674510 }; static const double rdgy[] = { - (double)0xb2/255.0, (double)0x18/255.0, (double)0x2b/255.0, - (double)0xd6/255.0, (double)0x60/255.0, (double)0x4d/255.0, - (double)0xf4/255.0, (double)0xa5/255.0, (double)0x82/255.0, - (double)0xfd/255.0, (double)0xdb/255.0, (double)0xc7/255.0, - (double)0xe0/255.0, (double)0xe0/255.0, (double)0xe0/255.0, - (double)0xba/255.0, (double)0xba/255.0, (double)0xba/255.0, - (double)0x87/255.0, (double)0x87/255.0, (double)0x87/255.0, - (double)0x4d/255.0, (double)0x4d/255.0, (double)0x4d/255.0 + 0.698039, 0.094118, 0.168627, + 0.839216, 0.376471, 0.301961, + 0.956863, 0.647059, 0.509804, + 0.992157, 0.858824, 0.780392, + 0.878431, 0.878431, 0.878431, + 0.729412, 0.729412, 0.729412, + 0.529412, 0.529412, 0.529412, + 0.301961, 0.301961, 0.301961 }; static const double rdpu[] = { - (double)0xff/255.0, (double)0xf7/255.0, (double)0xf3/255.0, - (double)0xfd/255.0, (double)0xe0/255.0, (double)0xdd/255.0, - (double)0xfc/255.0, (double)0xc5/255.0, (double)0xc0/255.0, - (double)0xfa/255.0, (double)0x9f/255.0, (double)0xb5/255.0, - (double)0xf7/255.0, (double)0x68/255.0, (double)0xa1/255.0, - (double)0xdd/255.0, (double)0x34/255.0, (double)0x97/255.0, - (double)0xae/255.0, (double)0x01/255.0, (double)0x7e/255.0, - (double)0x7a/255.0, (double)0x01/255.0, (double)0x77/255.0 + 1.000000, 0.968627, 0.952941, + 0.992157, 0.878431, 0.866667, + 0.988235, 0.772549, 0.752941, + 0.980392, 0.623529, 0.709804, + 0.968627, 0.407843, 0.631373, + 0.866667, 0.203922, 0.592157, + 0.682353, 0.003922, 0.494118, + 0.478431, 0.003922, 0.466667 }; static const double rdylbu[] = { - (double)0xd7/255.0, (double)0x30/255.0, (double)0x27/255.0, - (double)0xf4/255.0, (double)0x6d/255.0, (double)0x43/255.0, - (double)0xfd/255.0, (double)0xae/255.0, (double)0x61/255.0, - (double)0xfe/255.0, (double)0xe0/255.0, (double)0x90/255.0, - (double)0xe0/255.0, (double)0xf3/255.0, (double)0xf8/255.0, - (double)0xab/255.0, (double)0xd9/255.0, (double)0xe9/255.0, - (double)0x74/255.0, (double)0xad/255.0, (double)0xd1/255.0, - (double)0x45/255.0, (double)0x75/255.0, (double)0xb4/255.0 + 0.843137, 0.188235, 0.152941, + 0.956863, 0.427451, 0.262745, + 0.992157, 0.682353, 0.380392, + 0.996078, 0.878431, 0.564706, + 0.878431, 0.952941, 0.972549, + 0.670588, 0.850980, 0.913725, + 0.454902, 0.678431, 0.819608, + 0.270588, 0.458824, 0.705882 }; static const double rdylgn[] = { - (double)0xd7/255.0, (double)0x30/255.0, (double)0x27/255.0, - (double)0xf4/255.0, (double)0x6d/255.0, (double)0x43/255.0, - (double)0xfd/255.0, (double)0xae/255.0, (double)0x61/255.0, - (double)0xfe/255.0, (double)0xe0/255.0, (double)0x8b/255.0, - (double)0xd9/255.0, (double)0xef/255.0, (double)0x8b/255.0, - (double)0xa6/255.0, (double)0xd9/255.0, (double)0x6a/255.0, - (double)0x66/255.0, (double)0xbd/255.0, (double)0x63/255.0, - (double)0x1a/255.0, (double)0x98/255.0, (double)0x50/255.0 + 0.843137, 0.188235, 0.152941, + 0.956863, 0.427451, 0.262745, + 0.992157, 0.682353, 0.380392, + 0.996078, 0.878431, 0.545098, + 0.850980, 0.937255, 0.545098, + 0.650980, 0.850980, 0.415686, + 0.400000, 0.741176, 0.388235, + 0.101961, 0.596078, 0.313725 }; static const double reds[] = { - (double)0xff/255.0, (double)0xf5/255.0, (double)0xf0/255.0, - (double)0xfe/255.0, (double)0xe0/255.0, (double)0xd2/255.0, - (double)0xfc/255.0, (double)0xbb/255.0, (double)0xa1/255.0, - (double)0xfc/255.0, (double)0x92/255.0, (double)0x72/255.0, - (double)0xfb/255.0, (double)0x6a/255.0, (double)0x4a/255.0, - (double)0xef/255.0, (double)0x3b/255.0, (double)0x2c/255.0, - (double)0xcb/255.0, (double)0x18/255.0, (double)0x1d/255.0, - (double)0x99/255.0, (double)0x00/255.0, (double)0x0d/255.0 + 1.000000, 0.960784, 0.941176, + 0.996078, 0.878431, 0.823529, + 0.988235, 0.733333, 0.631373, + 0.988235, 0.572549, 0.447059, + 0.984314, 0.415686, 0.290196, + 0.937255, 0.231373, 0.172549, + 0.796078, 0.094118, 0.113725, + 0.600000, 0.000000, 0.050980 }; static const double sand[] = { - (double)0x60/255.0, (double)0x48/255.0, (double)0x60/255.0, - (double)0x78/255.0, (double)0x48/255.0, (double)0x60/255.0, - (double)0xa8/255.0, (double)0x60/255.0, (double)0x60/255.0, - (double)0xc0/255.0, (double)0x78/255.0, (double)0x60/255.0, - (double)0xf0/255.0, (double)0xa8/255.0, (double)0x48/255.0, - (double)0xf8/255.0, (double)0xca/255.0, (double)0x8c/255.0, - (double)0xfe/255.0, (double)0xec/255.0, (double)0xae/255.0, - (double)0xff/255.0, (double)0xf4/255.0, (double)0xc2/255.0, - (double)0xff/255.0, (double)0xf7/255.0, (double)0xdb/255.0, - (double)0xff/255.0, (double)0xfc/255.0, (double)0xf6/255.0 + 0.376471, 0.282353, 0.376471, + 0.470588, 0.282353, 0.376471, + 0.658824, 0.376471, 0.376471, + 0.752941, 0.470588, 0.376471, + 0.941176, 0.658824, 0.282353, + 0.972549, 0.792157, 0.549020, + 0.996078, 0.925490, 0.682353, + 1.000000, 0.956863, 0.760784, + 1.000000, 0.968627, 0.858824, + 1.000000, 0.988235, 0.964706 }; static const double set1[] = { - (double)0xe4/255.0, (double)0x1a/255.0, (double)0x1c/255.0, - (double)0x37/255.0, (double)0x7e/255.0, (double)0xb8/255.0, - (double)0x4d/255.0, (double)0xaf/255.0, (double)0x4a/255.0, - (double)0x98/255.0, (double)0x4e/255.0, (double)0xa3/255.0, - (double)0xff/255.0, (double)0x7f/255.0, (double)0x00/255.0, - (double)0xff/255.0, (double)0xff/255.0, (double)0x33/255.0, - (double)0xa6/255.0, (double)0x56/255.0, (double)0x28/255.0, - (double)0xf7/255.0, (double)0x81/255.0, (double)0xbf/255.0 + 0.894118, 0.101961, 0.109804, + 0.215686, 0.494118, 0.721569, + 0.301961, 0.686275, 0.290196, + 0.596078, 0.305882, 0.639216, + 1.000000, 0.498039, 0.000000, + 1.000000, 1.000000, 0.200000, + 0.650980, 0.337255, 0.156863, + 0.968627, 0.505882, 0.749020 }; static const double set2[] = { - (double)0x66/255.0, (double)0xc2/255.0, (double)0xa5/255.0, - (double)0xfc/255.0, (double)0x8d/255.0, (double)0x62/255.0, - (double)0x8d/255.0, (double)0xa0/255.0, (double)0xcb/255.0, - (double)0xe7/255.0, (double)0x8a/255.0, (double)0xc3/255.0, - (double)0xa6/255.0, (double)0xd8/255.0, (double)0x54/255.0, - (double)0xff/255.0, (double)0xd9/255.0, (double)0x2f/255.0, - (double)0xe5/255.0, (double)0xc4/255.0, (double)0x94/255.0, - (double)0xb3/255.0, (double)0xb3/255.0, (double)0xb3/255.0 + 0.400000, 0.760784, 0.647059, + 0.988235, 0.552941, 0.384314, + 0.552941, 0.627451, 0.796078, + 0.905882, 0.541176, 0.764706, + 0.650980, 0.847059, 0.329412, + 1.000000, 0.850980, 0.184314, + 0.898039, 0.768627, 0.580392, + 0.701961, 0.701961, 0.701961 }; static const double set3[] = { - (double)0x8d/255.0, (double)0xd3/255.0, (double)0xc7/255.0, - (double)0xff/255.0, (double)0xff/255.0, (double)0xb3/255.0, - (double)0xbe/255.0, (double)0xba/255.0, (double)0xda/255.0, - (double)0xfb/255.0, (double)0x80/255.0, (double)0x72/255.0, - (double)0x80/255.0, (double)0xb1/255.0, (double)0xd3/255.0, - (double)0xfd/255.0, (double)0xb4/255.0, (double)0x62/255.0, - (double)0xb3/255.0, (double)0xde/255.0, (double)0x69/255.0, - (double)0xfc/255.0, (double)0xcd/255.0, (double)0xe5/255.0 + 0.552941, 0.827451, 0.780392, + 1.000000, 1.000000, 0.701961, + 0.745098, 0.729412, 0.854902, + 0.984314, 0.501961, 0.447059, + 0.501961, 0.694118, 0.827451, + 0.992157, 0.705882, 0.384314, + 0.701961, 0.870588, 0.411765, + 0.988235, 0.803922, 0.898039 }; static const double spectral[] = { - (double)0xd5/255.0, (double)0x3e/255.0, (double)0x4f/255.0, - (double)0xf4/255.0, (double)0x6d/255.0, (double)0x43/255.0, - (double)0xfd/255.0, (double)0xae/255.0, (double)0x61/255.0, - (double)0xfe/255.0, (double)0xe0/255.0, (double)0x8b/255.0, - (double)0xe6/255.0, (double)0xf5/255.0, (double)0x98/255.0, - (double)0xab/255.0, (double)0xdd/255.0, (double)0xa4/255.0, - (double)0x66/255.0, (double)0xc2/255.0, (double)0xa5/255.0, - (double)0x32/255.0, (double)0x88/255.0, (double)0xbd/255.0 + 0.835294, 0.243137, 0.309804, + 0.956863, 0.427451, 0.262745, + 0.992157, 0.682353, 0.380392, + 0.996078, 0.878431, 0.545098, + 0.901961, 0.960784, 0.596078, + 0.670588, 0.866667, 0.643137, + 0.400000, 0.760784, 0.647059, + 0.196078, 0.533333, 0.741176 }; static const double whgnbu[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xff/255.0, - (double)0xe0/255.0, (double)0xf3/255.0, (double)0xdb/255.0, - (double)0xcc/255.0, (double)0xeb/255.0, (double)0xc5/255.0, - (double)0xa8/255.0, (double)0xdd/255.0, (double)0xb5/255.0, - (double)0x7b/255.0, (double)0xcc/255.0, (double)0xc4/255.0, - (double)0x4e/255.0, (double)0xb3/255.0, (double)0xd3/255.0, - (double)0x2b/255.0, (double)0x8c/255.0, (double)0xbe/255.0, - (double)0x08/255.0, (double)0x58/255.0, (double)0x9e/255.0 + 1.000000, 1.000000, 1.000000, + 0.878431, 0.952941, 0.858824, + 0.800000, 0.921569, 0.772549, + 0.658824, 0.866667, 0.709804, + 0.482353, 0.800000, 0.768627, + 0.305882, 0.701961, 0.827451, + 0.168627, 0.549020, 0.745098, + 0.031373, 0.345098, 0.619608 }; static const double whylrd[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xff/255.0, - (double)0xff/255.0, (double)0xee/255.0, (double)0x00/255.0, - (double)0xff/255.0, (double)0x70/255.0, (double)0x00/255.0, - (double)0xee/255.0, (double)0x00/255.0, (double)0x00/255.0, - (double)0x7f/255.0, (double)0x00/255.0, (double)0x00/255.0 + 1.000000, 1.000000, 1.000000, + 1.000000, 0.933333, 0.000000, + 1.000000, 0.439216, 0.000000, + 0.933333, 0.000000, 0.000000, + 0.498039, 0.000000, 0.000000 }; -static const double ylgnbu[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xd9/255.0, - (double)0xed/255.0, (double)0xf8/255.0, (double)0xb1/255.0, - (double)0xc7/255.0, (double)0xe9/255.0, (double)0xb4/255.0, - (double)0x7f/255.0, (double)0xcd/255.0, (double)0xbb/255.0, - (double)0x41/255.0, (double)0xb6/255.0, (double)0xc4/255.0, - (double)0x1d/255.0, (double)0x91/255.0, (double)0xc0/255.0, - (double)0x22/255.0, (double)0x5e/255.0, (double)0xa8/255.0, - (double)0x0c/255.0, (double)0x2c/255.0, (double)0x84/255.0 +static const double ylgn[] = { + 1.000000, 1.000000, 0.898039, + 0.968627, 0.988235, 0.725490, + 0.850980, 0.941176, 0.639216, + 0.678431, 0.866667, 0.556863, + 0.470588, 0.776471, 0.474510, + 0.254902, 0.670588, 0.364706, + 0.137255, 0.517647, 0.262745, + 0.000000, 0.352941, 0.196078 }; -static const double ylgn[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xe5/255.0, - (double)0xf7/255.0, (double)0xfc/255.0, (double)0xb9/255.0, - (double)0xd9/255.0, (double)0xf0/255.0, (double)0xa3/255.0, - (double)0xad/255.0, (double)0xdd/255.0, (double)0x8e/255.0, - (double)0x78/255.0, (double)0xc6/255.0, (double)0x79/255.0, - (double)0x41/255.0, (double)0xab/255.0, (double)0x5d/255.0, - (double)0x23/255.0, (double)0x84/255.0, (double)0x43/255.0, - (double)0x00/255.0, (double)0x5a/255.0, (double)0x32/255.0 +static const double ylgnbu[] = { + 1.000000, 1.000000, 0.850980, + 0.929412, 0.972549, 0.694118, + 0.780392, 0.913725, 0.705882, + 0.498039, 0.803922, 0.733333, + 0.254902, 0.713725, 0.768627, + 0.113725, 0.568627, 0.752941, + 0.133333, 0.368627, 0.658824, + 0.047059, 0.172549, 0.517647 }; static const double ylorbr[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xe5/255.0, - (double)0xff/255.0, (double)0xf7/255.0, (double)0xbc/255.0, - (double)0xfe/255.0, (double)0xe3/255.0, (double)0x91/255.0, - (double)0xfe/255.0, (double)0xc4/255.0, (double)0x4f/255.0, - (double)0xfe/255.0, (double)0x99/255.0, (double)0x29/255.0, - (double)0xec/255.0, (double)0x70/255.0, (double)0x14/255.0, - (double)0xcc/255.0, (double)0x4c/255.0, (double)0x02/255.0, - (double)0x8c/255.0, (double)0x2d/255.0, (double)0x04/255.0 + 1.000000, 1.000000, 0.898039, + 1.000000, 0.968627, 0.737255, + 0.996078, 0.890196, 0.568627, + 0.996078, 0.768627, 0.309804, + 0.996078, 0.600000, 0.160784, + 0.925490, 0.439216, 0.078431, + 0.800000, 0.298039, 0.007843, + 0.549020, 0.176471, 0.015686 }; static const double ylorrd[] = { - (double)0xff/255.0, (double)0xff/255.0, (double)0xcc/255.0, - (double)0xff/255.0, (double)0xed/255.0, (double)0xa0/255.0, - (double)0xfe/255.0, (double)0xd9/255.0, (double)0x76/255.0, - (double)0xfe/255.0, (double)0xb2/255.0, (double)0x4c/255.0, - (double)0xfd/255.0, (double)0x8d/255.0, (double)0x3c/255.0, - (double)0xfc/255.0, (double)0x4e/255.0, (double)0x2a/255.0, - (double)0xe3/255.0, (double)0x1a/255.0, (double)0x1c/255.0, - (double)0xb1/255.0, (double)0x00/255.0, (double)0x26/255.0 + 1.000000, 1.000000, 0.800000, + 1.000000, 0.929412, 0.627451, + 0.996078, 0.850980, 0.462745, + 0.996078, 0.698039, 0.298039, + 0.992157, 0.552941, 0.235294, + 0.988235, 0.305882, 0.164706, + 0.890196, 0.101961, 0.109804, + 0.694118, 0.000000, 0.149020 }; static const double ylrd[] = { - (double)0xff/255.0, (double)0xee/255.0, (double)0x00/255.0, - (double)0xff/255.0, (double)0x70/255.0, (double)0x00/255.0, - (double)0xee/255.0, (double)0x00/255.0, (double)0x00/255.0, - (double)0x7f/255.0, (double)0x00/255.0, (double)0x00/255.0 + 1.000000, 0.933333, 0.000000, + 1.000000, 0.439216, 0.000000, + 0.933333, 0.000000, 0.000000, + 0.498039, 0.000000, 0.000000 }; static const double inferno[] = { diff --git a/src/test_scmap.c b/src/test_scmap.c @@ -78,7 +78,7 @@ main(int argc, char** argv) palette.get_color = get_white; palette.ncolors = 1 ; - palette.context = (void*)0xDECAFBAD; + palette.context = (void*)0xDECAFBADLL; CHK(scmap_create(NULL, NULL, 1, &palette, &scmap) == RES_OK); CHK(scmap_ref_put(scmap) == RES_OK); diff --git a/src/test_scmap_palettes.c b/src/test_scmap_palettes.c @@ -42,9 +42,9 @@ main(int argc, char** argv) } CHK(scmap_get_builtin_palette("bad_name") == NULL); - CHK(palette = scmap_get_builtin_palette(argv[1])); + CHK((palette = scmap_get_builtin_palette(argv[1])) != NULL); CHK(scmap_create(NULL, NULL, 1, palette, &scmap) == RES_OK); - CHK(colors = sa_add(colors, MAP_WIDTH*3)); + CHK((colors = sa_add(colors, MAP_WIDTH*3)) != NULL); FOR_EACH(i, 0, MAP_WIDTH) { const double u = (double)i / (double)(MAP_WIDTH-1); @@ -68,7 +68,7 @@ main(int argc, char** argv) str_init(&mem_default_allocator, &filename); CHK(str_set(&filename, argv[1]) == RES_OK); CHK(str_append(&filename, ".ppm") == RES_OK); - CHK(fp = fopen(str_cget(&filename), "w")); + CHK((fp = fopen(str_cget(&filename), "w")) != NULL); CHK(image_write_ppm_stream(&img, 0, fp) == RES_OK); CHK(fclose(fp) == 0); str_release(&filename);