We don’t supply C code, since not everyone is coding in C and exact implementations will vary. However, the underlying math should be the same, and the CLF Specification has been updated and is what is announced as part of ACES 1.2. The specification defines the elements and attributes and provides the formulas that should be followed by an implementation that has parsed them.
The updated specification was rewritten for clarity and, in the process, added some new functionality beyond CLF v2. You can read that updated spec here : S-2014-006 - Common LUT Format (CLF) - A Common File Format for Look-Up Tables
This Implementation group is currently working to create a set of test files, tools and documentation to assist implementers in knowing when they have a robust implementation of CLF that supports all the elements and attributes that can be used.
In Appendix D of the document linked above, there is s short summary of the changes from v2 which I’ve duplicated here. But the specific details for each node are explained in their respective sections in the specification.
- Revise formulas for defining use of
Range ProcessNode to clamp at the low or high end.
IndexMaps removed. Use a
halfDomain LUT to achieve reshaping of input to a LUT.
- Move ACEStransform elements to
Info element of
ProcessList in main spec
- Changed syntax for
dim attribute of
Array when contained in a
Matrix. Two integers are now used to define the dimensions of the matrix instead of the previous three values which defined the dimensions of the matrix and the number of color components.
- Update schema to correct errors and include new elements
There will be a 1-hr Live Webinar about what’s new in 1.2 (both ACES Metadata File and CLF) on 4/29 11am PT - details here