> ## Name

> cgSetParameterValuedc - set the value of any numeric parameter

> ## Synopsis

>     #include <Cg/cg.h>

>     void cgSetParameterValuedc( CGparameter param,
>                                 int nelements,
>                                 const double * v );

> ## Parameters

> param
>   The program parameter whose value will be set.
> nelements
>   The number of elements in array v.
> v
>   Source buffer from which the parameter values will be read.

> ## Return Values

> None.

> ## Description

> cgSetParameterValuedc allows the application to set the value of any numeric parameter or parameter array.

> The given parameter must be a scalar, vector, matrix, or a (possibly multidimensional) array of scalars, vectors, or matrices.

> Any matrices referenced by param to be initialized in column-major order.

> If v is smaller than the total number of values in the given source parameter, CG_NOT_ENOUGH_DATA_ERROR is generated.

> The total number of values in a parameter, ntotal, may be computed as follow:

>     int nrows = cgGetParameterRows(param);
>     int ncols = cgGetParameterColumns(param);
>     int asize = cgGetArrayTotalSize(param);
>     int ntotal = nrows*ncols;
>     if (asize > 0) ntotal *= asize;

> ## Examples

> to-be-written

> ## Errors

> CG_INVALID_PARAM_HANDLE_ERROR is generated if param is not a valid parameter.

> CG_INVALID_PARAMETER_ERROR is generated if param is a varying input to a fragment program.

> CG_INVALID_POINTER_ERROR is generated if v is NULL.

> CG_NOT_ENOUGH_DATA_ERROR is generated if nelements is less than the total size of param.

> CG_NON_NUMERIC_PARAMETER_ERROR is generated if param is of a non-numeric type.

> ## History

> cgSetParameterValuedc was introduced in Cg 1.4.

> ## See Also

> cgSetParameterValue, cgGetParameterRows, cgGetParameterColumns, cgGetArrayTotalSize, cgGetParameterValue