constructor(whitePoint, blackPoint, gamma, matrix) {
    super("CalRGB", 3);

    if (!whitePoint) {
      throw new FormatError(
        "WhitePoint missing - required for color space CalRGB"
      );
    }
    // Translate arguments to spec variables.
    const [XW, YW, ZW] = (this.whitePoint = whitePoint);
    const [XB, YB, ZB] = (this.blackPoint = blackPoint || new Float32Array(3));

    [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);
    [
      this.MXA,
      this.MYA,
      this.MZA,
      this.MXB,
      this.MYB,
      this.MZB,
      this.MXC,
      this.MYC,
      this.MZC,
    ] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);

    // Validate variables as per spec.
    if (XW < 0 || ZW < 0 || YW !== 1) {
      throw new FormatError(
        `Invalid WhitePoint components for ${this.name}, no fallback available`
      );
    }

    if (XB < 0 || YB < 0 || ZB < 0) {
      info(
        `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +
          "falling back to default."
      );
      this.blackPoint = new Float32Array(3);
    }

    if (this.GR < 0 || this.GG < 0 || this.GB < 0) {
      info(
        `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +
          `${this.name}, falling back to default.`
      );
      this.GR = this.GG = this.GB = 1;
    }
  }
CalRGBCS: Based on "PDF Reference, Sixth Ed", p.247

The default color is `new Float32Array([0, 0, 0])`.