tnode_zip method

TreapNode tnode_zip(
  1. TreapNode lnode$2,
  2. int rank$4
)

Implementation

lcoc_core.TreapNode tnode_zip(lcoc_core.TreapNode lnode$2, dc.int rank$4, ){
assert((){
late final dc.bool $if_$9;
if((lcoc_core.$EQ_.$_invoke$2((0==rank$4), arr.length.isEven, ))){
$if_$9=true;
}else{
$if_$9=false;
}
return $if_$9;
}(), (){
final dc.List<dc.dynamic> fl$35=(dc.List<dc.dynamic>.filled(3, (lcoc_core.symbol.$_invoke$2(null, "=", )), ));
final dc.List<dc.dynamic> fl$36=(dc.List<dc.dynamic>.filled(2, (lcoc_core.symbol.$_invoke$2(null, "zero?", )), ));
fl$36[1]=(lcoc_core.symbol.$_invoke$2(null, "rank", ));
final lcoc_core.PersistentList $65=lcoc_core.$_list_lit(fl$36, );
final dc.List<dc.dynamic> fl$37=(dc.List<dc.dynamic>.filled(4, const lcoc_core.Keyword(null, "line", 878494669, ), ));
fl$37[1]=7476;
fl$37[2]=const lcoc_core.Keyword(null, "column", 3362807310, );
fl$37[3]=16;
final lcoc_core.PersistentHashMap $66=lcoc_core.$_map_lit(fl$37, );
final dc.dynamic $67=lcoc_core.with_meta($65, $66, );
fl$35[1]=$67;
final dc.List<dc.dynamic> fl$38=(dc.List<dc.dynamic>.filled(2, (lcoc_core.symbol.$_invoke$2(null, "even?", )), ));
final dc.List<dc.dynamic> fl$39=(dc.List<dc.dynamic>.filled(2, (lcoc_core.symbol.$_invoke$2(null, "alength", )), ));
fl$39[1]=(lcoc_core.symbol.$_invoke$2(null, "arr", ));
final lcoc_core.PersistentList $69=lcoc_core.$_list_lit(fl$39, );
final dc.List<dc.dynamic> fl$40=(dc.List<dc.dynamic>.filled(4, const lcoc_core.Keyword(null, "line", 878494669, ), ));
fl$40[1]=7476;
fl$40[2]=const lcoc_core.Keyword(null, "column", 3362807310, );
fl$40[3]=36;
final lcoc_core.PersistentHashMap $70=lcoc_core.$_map_lit(fl$40, );
final dc.dynamic $71=lcoc_core.with_meta($69, $70, );
fl$38[1]=$71;
final lcoc_core.PersistentList $68=lcoc_core.$_list_lit(fl$38, );
final dc.List<dc.dynamic> fl$41=(dc.List<dc.dynamic>.filled(4, const lcoc_core.Keyword(null, "line", 878494669, ), ));
fl$41[1]=7476;
fl$41[2]=const lcoc_core.Keyword(null, "column", 3362807310, );
fl$41[3]=29;
final lcoc_core.PersistentHashMap $72=lcoc_core.$_map_lit(fl$41, );
final dc.dynamic $73=lcoc_core.with_meta($68, $72, );
fl$35[2]=$73;
final lcoc_core.PersistentList $64=lcoc_core.$_list_lit(fl$35, );
final dc.List<dc.dynamic> fl$42=(dc.List<dc.dynamic>.filled(4, const lcoc_core.Keyword(null, "line", 878494669, ), ));
fl$42[1]=7476;
fl$42[2]=const lcoc_core.Keyword(null, "column", 3362807310, );
fl$42[3]=13;
final lcoc_core.PersistentHashMap $74=lcoc_core.$_map_lit(fl$42, );
final dc.dynamic $75=lcoc_core.with_meta($64, $74, );
final dc.String $76=(lcoc_core.pr_str.$_invoke$1($75, ));
final dc.String $77=(lcoc_core.str.$_invoke$2("Assert failed: ", $76, ));
return $77;
}());
final dc.int arg$1=(cnt-1);
late final dc.List<dc.dynamic> $if_$10;
if((0==rank$4)){
final dc.int size$8472_$AUTO_$6=((lnode$2.arr.length-0)+(arr.length-2));
final dc.List<dc.dynamic> dest$8468_$AUTO_$6=(dc.List<dc.dynamic>.filled(size$8472_$AUTO_$6, null, ));
final dc.int to$8469_$AUTO_$9=lnode$2.arr.length;
late final dc.int pos$8467_$AUTO_$23;
dc.int i$8470_$AUTO_$9=0;
dc.int j$8471_$AUTO_$9=0;
do {
if((j$8471_$AUTO_$9<to$8469_$AUTO_$9)){
final dc.dynamic v$8083_$AUTO_$17=(lnode$2.arr[j$8471_$AUTO_$9]);
dest$8468_$AUTO_$6[i$8470_$AUTO_$9]=v$8083_$AUTO_$17;
i$8470_$AUTO_$9=(1+i$8470_$AUTO_$9);
j$8471_$AUTO_$9=(1+j$8471_$AUTO_$9);
continue;
}
pos$8467_$AUTO_$23=i$8470_$AUTO_$9;
break;
} while(true);
final dc.int to$8469_$AUTO_$10=arr.length;
late final dc.int pos$8467_$AUTO_$24;
dc.int i$8470_$AUTO_$10=pos$8467_$AUTO_$23;
dc.int j$8471_$AUTO_$10=2;
do {
if((j$8471_$AUTO_$10<to$8469_$AUTO_$10)){
final dc.dynamic v$8083_$AUTO_$18=(arr[j$8471_$AUTO_$10]);
dest$8468_$AUTO_$6[i$8470_$AUTO_$10]=v$8083_$AUTO_$18;
i$8470_$AUTO_$10=(1+i$8470_$AUTO_$10);
j$8471_$AUTO_$10=(1+j$8471_$AUTO_$10);
continue;
}
pos$8467_$AUTO_$24=i$8470_$AUTO_$10;
break;
} while(true);
$if_$10=dest$8468_$AUTO_$6;
}else{
final dc.List larr$2=lnode$2.arr;
final dc.int ln_1$2=(larr$2.length-1);
final dc.int size$8472_$AUTO_$7=(((ln_1$2-0)+1)+(arr.length-1));
final dc.List<dc.dynamic> dest$8468_$AUTO_$7=(dc.List<dc.dynamic>.filled(size$8472_$AUTO_$7, null, ));
final dc.int to$8469_$AUTO_$11=ln_1$2;
late final dc.int pos$8467_$AUTO_$26;
dc.int i$8470_$AUTO_$11=0;
dc.int j$8471_$AUTO_$11=0;
do {
if((j$8471_$AUTO_$11<to$8469_$AUTO_$11)){
final dc.dynamic v$8083_$AUTO_$19=(larr$2[j$8471_$AUTO_$11]);
dest$8468_$AUTO_$7[i$8470_$AUTO_$11]=v$8083_$AUTO_$19;
i$8470_$AUTO_$11=(1+i$8470_$AUTO_$11);
j$8471_$AUTO_$11=(1+j$8471_$AUTO_$11);
continue;
}
pos$8467_$AUTO_$26=i$8470_$AUTO_$11;
break;
} while(true);
final lcoc_core.TreapNode v$8083_$AUTO_$20=(((arr[0]) as lcoc_core.TreapNode).tnode_zip(((larr$2[ln_1$2]) as lcoc_core.TreapNode), (rank$4-1), ));
dest$8468_$AUTO_$7[pos$8467_$AUTO_$26]=v$8083_$AUTO_$20;
final dc.int pos$8467_$AUTO_$27=(1+pos$8467_$AUTO_$26);
final dc.int to$8469_$AUTO_$12=arr.length;
late final dc.int pos$8467_$AUTO_$28;
dc.int i$8470_$AUTO_$12=pos$8467_$AUTO_$27;
dc.int j$8471_$AUTO_$12=1;
do {
if((j$8471_$AUTO_$12<to$8469_$AUTO_$12)){
final dc.dynamic v$8083_$AUTO_$21=(arr[j$8471_$AUTO_$12]);
dest$8468_$AUTO_$7[i$8470_$AUTO_$12]=v$8083_$AUTO_$21;
i$8470_$AUTO_$12=(1+i$8470_$AUTO_$12);
j$8471_$AUTO_$12=(1+j$8471_$AUTO_$12);
continue;
}
pos$8467_$AUTO_$28=i$8470_$AUTO_$12;
break;
} while(true);
$if_$10=dest$8468_$AUTO_$7;
}
return lcoc_core.TreapNode(arg$1, $if_$10, );
}