public static float[] eval(NslFloat2 _data, int i) {
   int[] sizes = _data.getSizes();
   int size1 = sizes[0];
   int size2 = sizes[1];
   float[] dest = new float[size2];
   return (eval(dest, _data, i));
 }
  public static float[][] eval(
      float[][] dest, NslFloat2 num, int start1, int start2, int end1, int end2) {

    float[][] _data = num.get();

    if (start1 < 0) start1 = 0;
    if (start2 < 0) start2 = 0;
    if (end1 > _data.length) end1 = _data.length;
    if (end2 > _data[0].length) end2 = _data[0].length;

    return eval(dest, _data, start1, start2, end1, end2);
  }
  public static float[][] eval(NslFloat2 num, int start1, int start2, int end1, int end2) {

    float[][] _data = num.get();

    if (start1 < 0) start1 = 0;
    if (start2 < 0) start2 = 0;
    if (end1 > _data.length) end1 = _data.length;
    if (end2 > _data[0].length) end2 = _data[0].length;

    int length1 = end1 - start1 + 1;
    int length2 = end2 - start2 + 1;

    return eval(new float[length1][length2], _data, start1, start2, end1, end2);
  }
 public float[][] eval(float[][] dest, float a, NslFloat2 b) {
   return eval(dest, a, b.getfloat2());
 }
 public float[][] eval(float[][] dest, NslFloat2 a, float b) {
   return eval(dest, a.getfloat2(), b);
 }
 public float[][] eval(NslFloat2 a, float b) {
   return eval(a.getfloat2(), b);
 }
 public float[][] eval(NslFloat2 a, NslFloat2 b) {
   return eval(a.getfloat2(), b.getfloat2());
 }
 public float[][] eval(float[][] dest, NslFloat0 a, NslFloat2 b) {
   return eval(dest, a.getfloat(), b.getfloat2());
 }
 // NslFloat 2d NslNumeric
 public static float[] eval(float[] dest, NslFloat2 _data, int i) {
   dest = _data.getfloat1(i);
   return dest;
 }