public static double[,,] Pad(this double[,,] input, int size) { if (size < 0) { throw new Exception(Consts.MatrixHelperMessages.PadPaddingValueInvalid); } var output = new double[ input.GetLength(0), input.GetLength(1) + size * 2, input.GetLength(2) + size * 2]; for (int k = 0; k < input.GetLength(0); k++) { for (int i = 0; i < input.GetLength(1); i++) { for (int j = 0; j < input.GetLength(2); j++) { output[k, i + size, j + size] = (double)input.GetValue(k, i, j); } } } return(output); }