Skip to content

Commit 79f20a9

Browse files
committed
trim spaces
1 parent 082cf2f commit 79f20a9

File tree

1 file changed

+52
-52
lines changed

1 file changed

+52
-52
lines changed

lib/compile_sort.js

+52-52
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ function createInsertionSort(order, dtype) {
5353
var funcName = ["ndarrayInsertionSort", order.join("d"), dtype].join("")
5454
var funcArgs = ["left", "right", "data", "offset" ].concat(shapeArgs(order.length))
5555
var allocator = getMallocFree(dtype)
56-
56+
5757
var vars = [ "i,j,cptr,ptr=left*s0+offset" ]
58-
58+
5959
if(order.length > 1) {
6060
var scratch_shape = []
6161
for(var i=1; i<order.length; ++i) {
@@ -71,31 +71,31 @@ function createInsertionSort(order, dtype) {
7171
} else {
7272
vars.push("scratch")
7373
}
74-
74+
7575
function dataRead(ptr) {
7676
if(dtype === "generic") {
7777
return ["data.get(", ptr, ")"].join("")
7878
}
7979
return ["data[",ptr,"]"].join("")
8080
}
81-
81+
8282
function dataWrite(ptr, v) {
8383
if(dtype === "generic") {
8484
return ["data.set(", ptr, ",", v, ")"].join("")
8585
}
8686
return ["data[",ptr,"]=",v].join("")
8787
}
88-
88+
8989
//Create function header
9090
code.push(
9191
["function ", funcName, "(", funcArgs.join(","), "){var ", vars.join(",")].join(""),
9292
"for(i=left+1;i<=right;++i){",
9393
"j=i;ptr+=s0",
9494
"cptr=ptr")
95-
96-
95+
96+
9797
if(order.length > 1) {
98-
98+
9999
//Copy data into scratch
100100
code.push("dptr=0;sptr=ptr")
101101
for(var i=order.length-1; i>=0; --i) {
@@ -114,7 +114,7 @@ function createInsertionSort(order, dtype) {
114114
code.push("sptr+=d"+j,"}")
115115
}
116116

117-
117+
118118
//Compare items in outer loop
119119
code.push("__g:while(j-->left){",
120120
"dptr=0",
@@ -132,7 +132,7 @@ function createInsertionSort(order, dtype) {
132132
"dptr+=f"+i,
133133
"}")
134134
}
135-
135+
136136
//Copy data back
137137
code.push("dptr=cptr;sptr=cptr-s0")
138138
for(var i=order.length-1; i>=0; --i) {
@@ -150,7 +150,7 @@ function createInsertionSort(order, dtype) {
150150
}
151151
code.push(["dptr+=d",j,";sptr+=d",j].join(""),"}")
152152
}
153-
153+
154154
//Close while loop
155155
code.push("cptr-=s0\n}")
156156

@@ -179,14 +179,14 @@ function createInsertionSort(order, dtype) {
179179
"}",
180180
dataWrite("cptr", "scratch"))
181181
}
182-
182+
183183
//Close outer loop body
184184
code.push("}")
185185
if(order.length > 1 && allocator) {
186186
code.push("free(scratch)")
187187
}
188188
code.push("} return " + funcName)
189-
189+
190190
//Compile and link function
191191
if(allocator) {
192192
var result = new Function("malloc", "free", code.join("\n"))
@@ -203,9 +203,9 @@ function createQuickSort(order, dtype, insertionSort) {
203203
var funcArgs = ["left", "right", "data", "offset" ].concat(shapeArgs(order.length))
204204
var allocator = getMallocFree(dtype)
205205
var labelCounter=0
206-
206+
207207
code.push(["function ", funcName, "(", funcArgs.join(","), "){"].join(""))
208-
208+
209209
var vars = [
210210
"sixth=((right-left+1)/6)|0",
211211
"index1=left+sixth",
@@ -234,7 +234,7 @@ function createQuickSort(order, dtype, insertionSort) {
234234
"comp_pivot2=0",
235235
"comp=0"
236236
]
237-
237+
238238
if(order.length > 1) {
239239
var ele_size = []
240240
for(var i=1; i<order.length; ++i) {
@@ -262,28 +262,28 @@ function createQuickSort(order, dtype, insertionSort) {
262262
} else {
263263
vars.push("pivot1", "pivot2")
264264
}
265-
265+
266266
//Initialize local variables
267267
code.push("var " + vars.join(","))
268-
268+
269269
function toPointer(v) {
270270
return ["(offset+",v,"*s0)"].join("")
271271
}
272-
272+
273273
function dataRead(ptr) {
274274
if(dtype === "generic") {
275275
return ["data.get(", ptr, ")"].join("")
276276
}
277277
return ["data[",ptr,"]"].join("")
278278
}
279-
279+
280280
function dataWrite(ptr, v) {
281281
if(dtype === "generic") {
282282
return ["data.set(", ptr, ",", v, ")"].join("")
283283
}
284284
return ["data[",ptr,"]=",v].join("")
285285
}
286-
286+
287287
function cacheLoop(ptrs, usePivot, body) {
288288
if(ptrs.length === 1) {
289289
code.push("ptr0="+toPointer(ptrs[0]))
@@ -325,7 +325,7 @@ function createQuickSort(order, dtype, insertionSort) {
325325
code.push("}")
326326
}
327327
}
328-
328+
329329
function lexicoLoop(label, ptrs, usePivot, body) {
330330
if(ptrs.length === 1) {
331331
code.push("ptr0="+toPointer(ptrs[0]))
@@ -362,13 +362,13 @@ function createQuickSort(order, dtype, insertionSort) {
362362
code.push("}")
363363
}
364364
}
365-
365+
366366
function cleanUp() {
367367
if(order.length > 1 && allocator) {
368368
code.push("free(pivot1)", "free(pivot2)")
369369
}
370370
}
371-
371+
372372
function compareSwap(a_id, b_id) {
373373
var a = "el"+a_id
374374
var b = "el"+b_id
@@ -383,7 +383,7 @@ function createQuickSort(order, dtype, insertionSort) {
383383
code.push(["if(", dataRead(toPointer(a)), ">", dataRead(toPointer(b)), "){tmp0=", a, ";",a,"=",b,";", b,"=tmp0}"].join(""))
384384
}
385385
}
386-
386+
387387
compareSwap(1, 2)
388388
compareSwap(4, 5)
389389
compareSwap(1, 3)
@@ -393,7 +393,7 @@ function createQuickSort(order, dtype, insertionSort) {
393393
compareSwap(2, 5)
394394
compareSwap(2, 3)
395395
compareSwap(4, 5)
396-
396+
397397
if(order.length > 1) {
398398
cacheLoop(["el1", "el2", "el3", "el4", "el5", "index1", "index3", "index5"], true, [
399399
"pivot1[pivot_ptr]=",dataRead("ptr1"),"\n",
@@ -419,7 +419,7 @@ function createQuickSort(order, dtype, insertionSort) {
419419
dataWrite(toPointer("index5"), "z")
420420
].join(""))
421421
}
422-
422+
423423

424424
function moveElement(dst, src) {
425425
if(order.length > 1) {
@@ -430,10 +430,10 @@ function createQuickSort(order, dtype, insertionSort) {
430430
code.push(dataWrite(toPointer(dst), dataRead(toPointer(src))))
431431
}
432432
}
433-
433+
434434
moveElement("index2", "left")
435435
moveElement("index4", "right")
436-
436+
437437
function comparePivot(result, ptr, n) {
438438
if(order.length > 1) {
439439
var lbl = "__l" + (++labelCounter)
@@ -445,7 +445,7 @@ function createQuickSort(order, dtype, insertionSort) {
445445
code.push([result,"=", dataRead(toPointer(ptr)), "-pivot", n].join(""))
446446
}
447447
}
448-
448+
449449
function swapElements(a, b) {
450450
if(order.length > 1) {
451451
cacheLoop([a,b],false,[
@@ -463,7 +463,7 @@ function createQuickSort(order, dtype, insertionSort) {
463463
].join(""))
464464
}
465465
}
466-
466+
467467
function tripleSwap(k, less, great) {
468468
if(order.length > 1) {
469469
cacheLoop([k,less,great], false, [
@@ -487,12 +487,12 @@ function createQuickSort(order, dtype, insertionSort) {
487487
].join(""))
488488
}
489489
}
490-
490+
491491
function swapAndDecrement(k, great) {
492492
swapElements(k, great)
493493
code.push("--"+great)
494494
}
495-
495+
496496
code.push("if(pivots_are_equal){")
497497
//Pivots are equal case
498498
code.push("for(k=less;k<=great;++k){")
@@ -549,7 +549,7 @@ function createQuickSort(order, dtype, insertionSort) {
549549
code.push("}")
550550
code.push("}")
551551
code.push("}")
552-
552+
553553
//Move pivots to correct place
554554
function storePivot(mem_dest, pivot_dest, pivot) {
555555
if(order.length>1) {
@@ -563,7 +563,7 @@ function createQuickSort(order, dtype, insertionSort) {
563563
dataWrite(toPointer(pivot_dest), "pivot"+pivot))
564564
}
565565
}
566-
566+
567567
storePivot("left", "(less-1)", 1)
568568
storePivot("right", "(great+1)", 2)
569569

@@ -579,13 +579,13 @@ function createQuickSort(order, dtype, insertionSort) {
579579
}
580580
doSort("left", "(less-2)")
581581
doSort("(great+2)", "right")
582-
582+
583583
//If pivots are equal, then early out
584584
code.push("if(pivots_are_equal){")
585585
cleanUp()
586586
code.push("return")
587587
code.push("}")
588-
588+
589589
function walkPointer(ptr, pivot, body) {
590590
if(order.length > 1) {
591591
code.push(["__l",++labelCounter,":while(true){"].join(""))
@@ -597,13 +597,13 @@ function createQuickSort(order, dtype, insertionSort) {
597597
code.push(["while(", dataRead(toPointer(ptr)), "===pivot", pivot, "){", body, "}"].join(""))
598598
}
599599
}
600-
600+
601601
//Check bounds
602602
code.push("if(less<index1&&great>index5){")
603-
603+
604604
walkPointer("less", 1, "++less")
605605
walkPointer("great", 2, "--great")
606-
606+
607607
code.push("for(k=less;k<=great;++k){")
608608
comparePivot("comp_pivot1", "k", 1)
609609
code.push("if(comp_pivot1===0){")
@@ -633,14 +633,14 @@ function createQuickSort(order, dtype, insertionSort) {
633633
code.push("}")
634634
code.push("}")
635635
code.push("}")
636-
636+
637637
//Clean up and do a final sorting pass
638638
cleanUp()
639639
doSort("less", "great")
640-
640+
641641
//Close off main loop
642642
code.push("}return " + funcName)
643-
643+
644644
//Compile and link
645645
if(order.length > 1 && allocator) {
646646
var compiled = new Function("insertionSort", "malloc", "free", code.join("\n"))
@@ -654,15 +654,15 @@ function compileSort(order, dtype) {
654654
var code = ["'use strict'"]
655655
var funcName = ["ndarraySortWrapper", order.join("d"), dtype].join("")
656656
var funcArgs = [ "array" ]
657-
657+
658658
code.push(["function ", funcName, "(", funcArgs.join(","), "){"].join(""))
659-
659+
660660
//Unpack local variables from array
661661
var vars = ["data=array.data,offset=array.offset|0,shape=array.shape,stride=array.stride"]
662662
for(var i=0; i<order.length; ++i) {
663663
vars.push(["s",i,"=stride[",i,"]|0,n",i,"=shape[",i,"]|0"].join(""))
664664
}
665-
665+
666666
var scratch_stride = new Array(order.length)
667667
var nprod = []
668668
for(var i=0; i<order.length; ++i) {
@@ -677,7 +677,7 @@ function compileSort(order, dtype) {
677677
}
678678
nprod.push("n"+k)
679679
}
680-
680+
681681
var p = -1, q = -1
682682
for(var i=0; i<order.length; ++i) {
683683
var j = order[i]
@@ -700,24 +700,24 @@ function compileSort(order, dtype) {
700700
q = k
701701
}
702702
}
703-
703+
704704
//Declare local variables
705705
code.push("var " + vars.join(","))
706-
706+
707707
//Create arguments for subroutine
708708
var sortArgs = ["0", "n0-1", "data", "offset"].concat(shapeArgs(order.length))
709-
709+
710710
//Call main sorting routine
711711
code.push([
712712
"if(n0<=",INSERTION_SORT_THRESHOLD,"){",
713713
"insertionSort(", sortArgs.join(","), ")}else{",
714714
"quickSort(", sortArgs.join(","),
715715
")}"
716716
].join(""))
717-
717+
718718
//Return
719719
code.push("}return " + funcName)
720-
720+
721721
//Link everything together
722722
var result = new Function("insertionSort", "quickSort", code.join("\n"))
723723
var insertionSort = createInsertionSort(order, dtype)

0 commit comments

Comments
 (0)