proc main()
{
    var scl = 2047;
    var vec = [511,1023,2047,4095];
    var mat = [[511,1023],[2047,4095]];
    var bscl = 16;
    var bvec = [16,16,16,16];
    var bmat = [[16,10],[16,10],[16,10],[16,10]];
      "scl enc scl:\n", bscl.encode(scl), '\n';
    "\nscl enc vec:\n", bscl.encode(vec), '\n';
    "\nscl enc mat:\n", bscl.encode(mat), '\n';
    "\nvec enc scl:\n", bvec.encode(scl), '\n';
    "\nvec enc vec:\n", bvec.encode(vec), '\n';
    "\nvec enc mat:\n", bvec.encode(mat), '\n';
    "\nmat enc scl:\n", bmat.encode(scl), '\n';
    "\nmat enc vec:\n", bmat.encode(vec), '\n';
    "\nmat enc mat:\n", bmat.encode(mat), '\n';
}