@node CLUT Manipulation @chapter CLUT Manipulation @command{libclut} has a number of function-like macros for manipulating colour lookup tables. These have 3 common initial parameters, that describe the colour lookup table that shall be manipulated. @table @code @item clut Pointer to the gamma ramps. This must be a pointer to an instance of a @code{struct} that must at least have the array members @code{red}, @code{green}, and @code{blue}, whose elements shall be of the time specified by the parameter @code{type}. The struct must also have the scalar members @code{red_size}, @code{green_size}, and @code{blue_size}, and shall be of the type @code{size_t}; they shall specify the number of stops (elements) in the arrays @code{.red}, @code{.green}, and @code{.blue}, respectively, which shall be the gamma ramp for the ``red'', green, and blue channels respectively. @item max The maximum value on each stop in the ramps. @item type The data type used for each stop in the ramps. @end table @noindent Additionally, these macros do not allow that arguments have side-effects. None, if the macros have a return value.