<commit_before>/* $Id$

	Multiple window and color map 0 demo.
*/

#include "plcdemos.h"

/*--------------------------------------------------------------------------*\
 * main
 *
 * Demonstrates multiple windows and color map 0 palette, both default and
 * user-modified.
\*--------------------------------------------------------------------------*/

void demo1();
void demo2();
void draw_windows(int nw, int cmap0_offset);

int
main(int argc, const char *argv[])
{
/* Parse and process command line arguments */
    (void) plparseopts(&argc, argv, PL_PARSE_FULL);

/* Initialize plplot */
    plinit();

/* Run demos */
    demo1();
    demo2();

    plend();
    exit(0);
}

/*--------------------------------------------------------------------------*\
 * demo1
 *
 * Demonstrates multiple windows and default color map 0 palette.
\*--------------------------------------------------------------------------*/

void demo1()
{
    plbop();

/* Divide screen into 16 regions */
    plssub(4, 4);

    draw_windows( 16, 0 );

    pleop();
}

/*--------------------------------------------------------------------------*\
 * demo2
 *
 * Demonstrates multiple windows, user-modified color map 0 palette, and
 * HLS -> RGB translation.
\*--------------------------------------------------------------------------*/

void demo2()
{
/* Set up cmap0 */
/* Use 100 custom colors in addition to base 16 */
    PLINT r[116], g[116], b[116];

/* Min & max lightness values */
    PLFLT lmin = 0.15, lmax = 0.85;

    int i;

    plbop();

/* Divide screen into 100 regions */

    plssub(10, 10);

    for (i = 0; i <= 99; i++) {
        PLFLT h, l, s;
        PLFLT r1, g1, b1;

    /* Bounds on HLS, from plhlsrgb() commentary --
     *	hue		[0., 360.]	degrees
     *	lightness	[0., 1.]	magnitude
     *	saturation	[0., 1.]	magnitude
     */

    /* Vary hue uniformly from left to right */
        h = (360. / 10. ) * ( i % 10 );
    /* Vary lightness uniformly from top to bottom, between min & max */
        l = lmin + (lmax - lmin) * (i / 10) / 9.;
    /* Use max saturation */
        s = 1.0;

        plhlsrgb(h, l, s, &r1, &g1, &b1);
       /*printf("%3d %15.9f %15.9f %15.9f %15.9f %15.9f %15.9f\n", 
	      i+16,h,l,s,r1,g1,b1); */

        /* Use 255.001 to avoid close truncation decisions in this example. */
        r[i+16] = r1 * 255.001;
        g[i+16] = g1 * 255.001;
        b[i+16] = b1 * 255.001;
    }

/* Load default cmap0 colors into our custom set */
    for (i = 0; i <= 15; i++)
        plgcol0(i, &r[i], &g[i], &b[i]);

/*    for (i = 0; i < 116; i++)
        printf("%3d %3d %3d %3d \n", i, r[i], g[i], b[i]); */
/* Now set cmap0 all at once (faster, since fewer driver calls) */
    plscmap0(r, g, b, 116);

    draw_windows( 100, 16 );

    pleop();
}

/*--------------------------------------------------------------------------*\
 * draw_windows
 *
 * Draws a set of numbered boxes with colors according to cmap0 entry.
\*--------------------------------------------------------------------------*/

void draw_windows(int nw, int cmap0_offset)
{
    int i, j;
    PLFLT vmin, vmax;
    char text[3];<commit_msg>Explicitly converting double to PLINT (Visual C++ warnings).<commit_after>/* $Id$

	Multiple window and color map 0 demo.
*/

#include "plcdemos.h"

/*--------------------------------------------------------------------------*\
 * main
 *
 * Demonstrates multiple windows and color map 0 palette, both default and
 * user-modified.
\*--------------------------------------------------------------------------*/

void demo1();
void demo2();
void draw_windows(int nw, int cmap0_offset);

int
main(int argc, const char *argv[])
{
/* Parse and process command line arguments */
    (void) plparseopts(&argc, argv, PL_PARSE_FULL);

/* Initialize plplot */
    plinit();

/* Run demos */
    demo1();
    demo2();

    plend();
    exit(0);
}

/*--------------------------------------------------------------------------*\
 * demo1
 *
 * Demonstrates multiple windows and default color map 0 palette.
\*--------------------------------------------------------------------------*/

void demo1()
{
    plbop();

/* Divide screen into 16 regions */
    plssub(4, 4);

    draw_windows( 16, 0 );

    pleop();
}

/*--------------------------------------------------------------------------*\
 * demo2
 *
 * Demonstrates multiple windows, user-modified color map 0 palette, and
 * HLS -> RGB translation.
\*--------------------------------------------------------------------------*/

void demo2()
{
/* Set up cmap0 */
/* Use 100 custom colors in addition to base 16 */
    PLINT r[116], g[116], b[116];

/* Min & max lightness values */
    PLFLT lmin = 0.15, lmax = 0.85;

    int i;

    plbop();

/* Divide screen into 100 regions */

    plssub(10, 10);

    for (i = 0; i <= 99; i++) {
        PLFLT h, l, s;
        PLFLT r1, g1, b1;

    /* Bounds on HLS, from plhlsrgb() commentary --
     *	hue		[0., 360.]	degrees
     *	lightness	[0., 1.]	magnitude
     *	saturation	[0., 1.]	magnitude
     */

    /* Vary hue uniformly from left to right */
        h = (360. / 10. ) * ( i % 10 );
    /* Vary lightness uniformly from top to bottom, between min & max */
        l = lmin + (lmax - lmin) * (i / 10) / 9.;
    /* Use max saturation */
        s = 1.0;

        plhlsrgb(h, l, s, &r1, &g1, &b1);
       /*printf("%3d %15.9f %15.9f %15.9f %15.9f %15.9f %15.9f\n", 
	      i+16,h,l,s,r1,g1,b1); */

        /* Use 255.001 to avoid close truncation decisions in this example. */
        r[i+16] = (PLINT)(r1 * 255.001);
        g[i+16] = (PLINT)(g1 * 255.001);
        b[i+16] = (PLINT)(b1 * 255.001);
    }

/* Load default cmap0 colors into our custom set */
    for (i = 0; i <= 15; i++)
        plgcol0(i, &r[i], &g[i], &b[i]);

/*    for (i = 0; i < 116; i++)
        printf("%3d %3d %3d %3d \n", i, r[i], g[i], b[i]); */
/* Now set cmap0 all at once (faster, since fewer driver calls) */
    plscmap0(r, g, b, 116);

    draw_windows( 100, 16 );

    pleop();
}

/*--------------------------------------------------------------------------*\
 * draw_windows
 *
 * Draws a set of numbered boxes with colors according to cmap0 entry.
\*--------------------------------------------------------------------------*/

void draw_windows(int nw, int cmap0_offset)
{
    int i, j;
    PLFLT vmin, vmax;
    char text[3];
{'fraction_non_alphanumeric': 0.32562165564998424, 'fraction_numerical': 0.05067673906200818, 'mean_word_length': 1.283507006827165, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1952814', 'n_tokens_mistral': 2255, 'n_tokens_neox': 2001, 'n_words': 624}