Shifts the first element of the tuple resulting in a tuple of degree - 1.

@return A new tuple without the shifted element;
774399
public Tuple shiftLeft() {
      if (degree() < 2) {
         return Tuple0.INSTANCE;
      }
      Object[] copy = new Object[degree() - 1];
      System.arraycopy(array(), 1, copy, 0, copy.length);
      return NTuple.of(copy);
   }
407405
public final <U1> Tuple1<U1> map1(Function<? super T1, ? extends U1> function) {
        return Tuple.tuple(function.apply(v1));
    }
1284014
public final Tuple2<Tuple5<T1, T2, T3, T4, T5>, Tuple7<T6, T7, T8, T9, T10, T11, T12>> split5() {
        return new Tuple2<>(limit5(), skip5());
    }
544498
public final Tuple5<T1, T2, T3, T4, T5> limit5() {
        return new Tuple5<>(v1, v2, v3, v4, v5);
    }
1137790
public final Tuple5<T4, T5, T6, T7, T8> skip3() {
        return new Tuple5<>(v4, v5, v6, v7, v8);
    }
904632
public final Tuple2<Tuple2<T1, T2>, Tuple1<T3>> split2() {
        return new Tuple2<>(limit2(), skip2());
    }
132004
public T negative() {
        T A = copy();
        ops.changeSign(A.mat);
        return A;
    }
1314504
public final Tuple4<T4, T5, T6, T7> skip3() {
        return new Tuple4<>(v4, v5, v6, v7);
    }
930717
public final <U1> Tuple6<U1, T2, T3, T4, T5, T6> map1(Function<? super T1, ? extends U1> function) {
        return Tuple.tuple(function.apply(v1), v2, v3, v4, v5, v6);
    }
512762
public int first() {
        int val;
        int i;

        for (i = 0; i < data.length; i++) {
            if (data[i] != 0) {
                val = data[i];
                i <<= SHIFT;
                while ((val & 1) == 0) {
                    val >>>= 1;
                    i++;
                }
                return i;
            }
        }
        return -1;
    }
1311367
public final Tuple5<T12, T13, T14, T15, T16> skip11() {
        return new Tuple5<>(v12, v13, v14, v15, v16);
    }
1273725
public final Tuple5<T7, T8, T9, T10, T11> skip6() {
        return new Tuple5<>(v7, v8, v9, v10, v11);
    }
924821
public long next() {
    long x = xorshift(this.x);
    this.x = y;
    y = z;
    z = this.x ^ x ^ y;
    return z;
  }
175239
public final Tuple4<T12, T13, T14, T15> skip11() {
        return new Tuple4<>(v12, v13, v14, v15);
    }
945471
public final <T1> Tuple1<T1> concat(Tuple1<T1> tuple) {
        return new Tuple1<>(tuple.v1);
    }
63127
public final Tuple2<Tuple0, Tuple5<T1, T2, T3, T4, T5>> split0() {
        return new Tuple2<>(limit0(), skip0());
    }
138301
public final Tuple6<T3, T4, T5, T6, T7, T8> skip2() {
        return new Tuple6<>(v3, v4, v5, v6, v7, v8);
    }