It's a bit tricky to get linear (=only gamma-encoded) output from C1, as their "linear" curves does often does things to control highlights etc. Rather than TRC from the profile, I think it's more accurate to use the TIFFTAG_TRANSFERFUNCTION tag of TIFFs exported without color management, that is the tag you use to linearize data prior to camera profiling.
I have curve-fitted that with very close result, the constants look pretty ugly complex, but the final function is not too complicated. I don't think it's exactly what they use (which could be just a 1D LUT), but it matches the result of TIFFTRANSFER_FUNCTION really well:
static const double c1_gamma_k = (7 * sqrt(3) * sqrt(5) * sqrt(577) + 648) / 5000.0;
static const double c1_gamma_l = (7 / sqrt(8655));
static const double c1_gamma_k_inv = 5000.0 / (7 * sqrt(3) * sqrt(5) * sqrt(577) + 648);
static const double c1_gamma_l_inv = (7 / sqrt(8655)) * (7 * sqrt(3) * sqrt(5) * sqrt(577) + 648) / 5000.0;
static inline double
c1_gamma_forward(const double x)
{
if (x <= c1_gamma_l_inv) {
return x * c1_gamma_k_inv;
} else {
return (sqrt(3) * sqrt(28850000 * x - 1397) - 648) / 8655;
}
}
static inline double
c1_gamma_inverse(const double y)
{
if (y <= c1_gamma_l) {
return y * c1_gamma_k;
} else {
return 0.8655 * y*y + 0.1296*y + 0.0049;
}
}
This function is pretty close to 1.8 as they refer to themselves, but has a linear segment in the dark shadows, the same type of design as sRGB gamma has.
Having a gamma that matches is important for my profiling software to work, matching the color picker RGB primaries is only a curiousity though... it surprises me why it's so "secret", surely someone must have asked before? In Lightroom the color picker shows ProPhotoRGB primaries with sRGB gamma in percent. That no answer exists for Capture One could indicate that it indeed is a variable space, although if the working space is variable the color picker could still have it's own fixed color space. It's not important enough for me to reverse-engineer it like the gamma.