PK_ERROR_code_t PK_CURVE_eval_handed ( --- received arguments --- PK_CURVE_t curve, --- curve double t, --- curve parameter int n_derivs, --- number of derivatives PK_HAND_t hand_direction, --- evaluation direction --- returned arguments --- PK_VECTOR_t p[] --- point and derivatives. ) The function behaves like PK_CURVE_eval but takes an additional argument to control the direction of the evalution. Specific Errors: PK_ERROR_bad_parameter cannot evaluate out of range PK_ERROR_too_many_derivatives too many derivatives requested PK_ERROR_eval_failure internal evaluator failure This function is the handed version of PK_CURVE_eval, which evaluates the point and derivatives at a given parameter of a curve. The point and derivatives at a given parameter are determined using the curve segment that the parameter lies in. If the parameter lies on a segment boundary then there are two possible curve segments that can be used. They are the segment before the boundary (hand_direction == PK_HAND_left_c ) and the segment after the boundary (hand_direction == PK_HAND_right_c). 0 1 2 3 4 5 |------------|------------|----------|----------|----------| on_left | <---------| on_right |---------> t Where derivative discontinuities exist at the parameter, the derivatives calculated by the left segment may be different from those calculated using the right segment. If the curve is periodic, the left (or right) segment of the beginning of the periodic range equals to the left (or right) segment of the end of the periodic range.