@@ -247,17 +247,36 @@ public void setIndent(int newIndent) {
247247
248248 @ Override
249249 public String toString () {
250- return toString ( 1 , 0 );
250+ return toSimpleString ( );
251251 }
252252
253- private String toString (int k , int sp ) {
254- if (k >= N ) return indent (sp ) + Dat [k ];
253+ private S [] simulatePushAll () {
254+ S [] simDat = java .util .Arrays .copyOf (Dat , 2 * N );
255+ F [] simLaz = java .util .Arrays .copyOf (Laz , 2 * N );
256+ for (int k = 1 ; k < N ; k ++) {
257+ if (simLaz [k ] == Id ) continue ;
258+ int lk = k << 1 | 0 , rk = k << 1 | 1 ;
259+ simDat [lk ] = Mapping .apply (simLaz [k ], simDat [lk ]);
260+ simDat [rk ] = Mapping .apply (simLaz [k ], simDat [rk ]);
261+ if (lk < N ) simLaz [lk ] = Composition .apply (simLaz [k ], simLaz [lk ]);
262+ if (rk < N ) simLaz [rk ] = Composition .apply (simLaz [k ], simLaz [rk ]);
263+ simLaz [k ] = Id ;
264+ }
265+ return simDat ;
266+ }
267+
268+ public String toDetailedString () {
269+ return toDetailedString (1 , 0 , simulatePushAll ());
270+ }
271+
272+ private String toDetailedString (int k , int sp , S [] dat ) {
273+ if (k >= N ) return indent (sp ) + dat [k ];
255274 String s = "" ;
256- s += toString (k << 1 | 1 , sp + indent );
275+ s += toDetailedString (k << 1 | 1 , sp + indent , dat );
257276 s += "\n " ;
258- s += indent (sp ) + Dat [ k ] + "/" + Laz [k ];
277+ s += indent (sp ) + dat [k ];
259278 s += "\n " ;
260- s += toString (k << 1 | 0 , sp + indent );
279+ s += toDetailedString (k << 1 | 0 , sp + indent , dat );
261280 return s ;
262281 }
263282
@@ -266,4 +285,16 @@ private static String indent(int n) {
266285 while (n --> 0 ) sb .append (' ' );
267286 return sb .toString ();
268287 }
288+
289+ public String toSimpleString () {
290+ S [] dat = simulatePushAll ();
291+ StringBuilder sb = new StringBuilder ();
292+ sb .append ('[' );
293+ for (int i = 0 ; i < N ; i ++) {
294+ sb .append (dat [i + N ]);
295+ if (i < N - 1 ) sb .append (',' ).append (' ' );
296+ }
297+ sb .append (']' );
298+ return sb .toString ();
299+ }
269300}
0 commit comments