anchor.diff:      return this;
     }
   
  -  void frustum(double left, double right, double bottom, double top, double near, double far) {
  -    double rl = (right - left),
  -        tb = (top - bottom),
  -        fn = (far - near);
  +  void frustum(double left, double right, double bottom, double top,
  +      double near, double far) {
  +    double rl = (right - left), tb = (top - bottom), fn = (far - near);
       clear();
       array[0] = (near * 2) / rl;
       array[5] = (near * 2) / tb;
  
positive.code: 
    // dest = Vector4
    void multiplyVec4(List<double> vec4) {
      var x = vec4[0],
          y = vec4[1],
          z = vec4[2],
          w = vec4[3];
  
      vec4[0] = array[0] * x + array[4] * y + array[8] * z + array[12] * w;
      vec4[1] = array[1] * x + array[5] * y + array[9] * z + array[13] * w;
  
negative.code:         b09 = a21 * a32 - a22 * a31,
          b10 = a21 * a33 - a23 * a31,
          b11 = a22 * a33 - a23 * a32,
          d =
          (b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06),
          invDet;
  
      // Calculate the determinant
  