@@ -25,38 +25,46 @@ public partial class NDArray
2525 /// <summary>
2626 /// Creates an NDArray out of given array of type <typeparamref name="T"/>
2727 /// </summary>
28- /// <param name="dotNetArray "></param>
29- public static NDArray FromMultiDimArray < T > ( Array dotNetArray )
28+ /// <param name="ndarray "></param>
29+ public static NDArray FromMultiDimArray < T > ( Array ndarray , bool copy = true ) where T : unmanaged
3030 {
31- if ( dotNetArray . GetType ( ) . GetElementType ( ) . IsArray )
32- throw new Exception ( "Jagged arrays are not allowed here! " ) ;
31+ if ( ndarray . GetType ( ) . GetElementType ( ) . IsArray )
32+ throw new Exception ( "Given array is a jagged array. " ) ;
3333
34- switch ( dotNetArray . Rank )
34+ switch ( ndarray . Rank )
3535 {
3636 case 1 :
37- return np . array ( ( T [ ] ) dotNetArray ) ;
37+ return np . array ( ( T [ ] ) ndarray , copy ) ;
3838 case 2 :
39- return np . array ( ( T [ , ] ) dotNetArray ) ;
39+ return np . array ( ( T [ , ] ) ndarray , copy ) ;
4040 case 3 :
41- return np . array ( ( T [ , , ] ) dotNetArray ) ;
41+ return np . array ( ( T [ , , ] ) ndarray , copy ) ;
4242 case 4 :
43- return np . array ( ( T [ , , , ] ) dotNetArray ) ;
43+ return np . array ( ( T [ , , , ] ) ndarray , copy ) ;
4444 case 5 :
45- return np . array ( ( T [ , , , , ] ) dotNetArray ) ;
45+ return np . array ( ( T [ , , , , ] ) ndarray , copy ) ;
4646 case 6 :
47- return np . array ( ( T [ , , , , , ] ) dotNetArray ) ;
47+ return np . array ( ( T [ , , , , , ] ) ndarray , copy ) ;
4848 case 7 :
49- return np . array ( ( T [ , , , , , , ] ) dotNetArray ) ;
49+ return np . array ( ( T [ , , , , , , ] ) ndarray , copy ) ;
5050 case 8 :
51- return np . array ( ( T [ , , , , , , , ] ) dotNetArray ) ;
51+ return np . array ( ( T [ , , , , , , , ] ) ndarray , copy ) ;
5252 case 9 :
53- return np . array ( ( T [ , , , , , , , , ] ) dotNetArray ) ;
53+ return np . array ( ( T [ , , , , , , , , ] ) ndarray , copy ) ;
5454 case 10 :
55- return np . array ( ( T [ , , , , , , , , , ] ) dotNetArray ) ;
55+ return np . array ( ( T [ , , , , , , , , , ] ) ndarray , copy ) ;
5656 case 11 :
57- return np . array ( ( T [ , , , , , , , , , , ] ) dotNetArray ) ;
57+ return np . array ( ( T [ , , , , , , , , , , ] ) ndarray , copy ) ;
5858 case 12 :
59- return np . array ( ( T [ , , , , , , , , , , , ] ) dotNetArray ) ;
59+ return np . array ( ( T [ , , , , , , , , , , , ] ) ndarray , copy ) ;
60+ case 13 :
61+ return np . array ( ( T [ , , , , , , , , , , , , ] ) ndarray , copy ) ;
62+ case 14 :
63+ return np . array ( ( T [ , , , , , , , , , , , , , ] ) ndarray , copy ) ;
64+ case 15 :
65+ return np . array ( ( T [ , , , , , , , , , , , , , , ] ) ndarray , copy ) ;
66+ case 16 :
67+ return np . array ( ( T [ , , , , , , , , , , , , , , , ] ) ndarray , copy ) ;
6068 }
6169
6270 throw new NotImplementedException ( "FromMultiDimArray<T>(Array dotNetArray)" ) ;
0 commit comments