You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

InfoOf.cs 1.9 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Runtime.InteropServices;
  4. using System.Text;
  5. namespace Tensorflow.Numpy
  6. {
  7. public class InfoOf<T>
  8. {
  9. public static readonly int Size;
  10. public static readonly NumpyDType NPTypeCode;
  11. public static readonly T Zero;
  12. public static readonly T MaxValue;
  13. public static readonly T MinValue;
  14. static InfoOf()
  15. {
  16. NPTypeCode = typeof(T).GetTypeCode();
  17. switch (NPTypeCode)
  18. {
  19. case NumpyDType.Boolean:
  20. Size = 1;
  21. break;
  22. case NumpyDType.Char:
  23. Size = 2;
  24. break;
  25. case NumpyDType.Byte:
  26. Size = 1;
  27. break;
  28. case NumpyDType.Int16:
  29. Size = 2;
  30. break;
  31. case NumpyDType.UInt16:
  32. Size = 2;
  33. break;
  34. case NumpyDType.Int32:
  35. Size = 4;
  36. break;
  37. case NumpyDType.UInt32:
  38. Size = 4;
  39. break;
  40. case NumpyDType.Int64:
  41. Size = 8;
  42. break;
  43. case NumpyDType.UInt64:
  44. Size = 8;
  45. break;
  46. case NumpyDType.Single:
  47. Size = 4;
  48. break;
  49. case NumpyDType.Double:
  50. Size = 8;
  51. break;
  52. case NumpyDType.Decimal:
  53. Size = 16;
  54. break;
  55. case NumpyDType.String:
  56. break;
  57. case NumpyDType.Complex:
  58. default:
  59. Size = Marshal.SizeOf<T>();
  60. break;
  61. }
  62. }
  63. }
  64. }