@@ -429,12 +429,12 @@ impl<T: Num + PartialOrd + Copy> Div<DynamicMatrix<T>> for Tensor<T> {
429
429
430
430
impl < T : Num + PartialOrd + Copy + std:: fmt:: Display > Tensor < T > {
431
431
pub fn display ( & self ) -> String {
432
- fn format_tensor < T : Num + PartialOrd + Copy + std:: fmt:: Display > ( data : & [ T ] , shape : & [ usize ] , level : usize ) -> String {
433
- if shape. len ( ) == 1 {
432
+ fn format_tensor < T : Num + PartialOrd + Copy + std:: fmt:: Display > ( data : & DynamicStorage < T > , shape : & Shape , level : usize ) -> String {
433
+ if shape. order ( ) == 1 {
434
434
let mut result = String :: from ( "[" ) ;
435
435
for ( i, item) in data. iter ( ) . enumerate ( ) {
436
436
result. push_str ( & format ! ( "{}" , item) ) ;
437
- if i < data. len ( ) - 1 {
437
+ if i < data. size ( ) - 1 {
438
438
result. push_str ( ", " ) ;
439
439
}
440
440
}
@@ -443,21 +443,25 @@ impl<T: Num + PartialOrd + Copy + std::fmt::Display> Tensor<T> {
443
443
}
444
444
445
445
let mut result = String :: from ( "[" ) ;
446
- let sub_size = shape[ 1 ..] . iter ( ) . product ( ) ;
446
+ let sub_size = Shape :: new ( shape[ 1 ..] . to_vec ( ) ) . unwrap ( ) . size ( ) ;
447
447
for i in 0 ..shape[ 0 ] {
448
448
if i > 0 {
449
449
result. push_str ( ",\n " ) ;
450
+ for _ in 0 ..shape. order ( ) - 2 {
451
+ result. push ( '\n' ) ;
452
+ }
450
453
for _ in 0 ..level {
451
454
result. push ( ' ' ) ;
452
455
}
453
456
}
454
- result. push_str ( & format_tensor ( & data[ i * sub_size..( i + 1 ) * sub_size] , & shape[ 1 ..] , level + 1 ) ) ;
457
+ let sub_data = DynamicStorage :: new ( data[ i * sub_size..( i + 1 ) * sub_size] . to_vec ( ) ) ;
458
+ result. push_str ( & format_tensor ( & sub_data, & Shape :: new ( shape[ 1 ..] . to_vec ( ) ) . unwrap ( ) , level + 1 ) ) ;
455
459
}
456
460
result. push ( ']' ) ;
457
461
result
458
462
}
459
463
460
- format_tensor ( & self . data , & self . shape . dims ( ) , 1 )
464
+ format_tensor ( & self . data , & self . shape , 1 )
461
465
}
462
466
}
463
467
0 commit comments