11//================================================================
2+
23/**
34 * @packageDocumentation
45 * @module std
56 */
67//================================================================
7- import { IForwardIterator } from "../iterator/IForwardIterator" ;
88import { IPointer } from "../functional/IPointer" ;
9- import { Pair } from "../utility/Pair" ;
10-
11- import { Comparator } from "../internal/functional/Comparator" ;
12- import { distance , advance } from "../iterator/global" ;
139import { less } from "../functional/comparators" ;
10+ import { Comparator } from "../internal/functional/Comparator" ;
11+ import { IForwardIterator } from "../iterator/IForwardIterator" ;
12+ import { advance , distance } from "../iterator/global" ;
13+ import { Pair } from "../utility/Pair" ;
1414
1515/* =========================================================
1616 BINARY SEARCH
@@ -26,27 +26,27 @@ import { less } from "../functional/comparators";
2626 * @return Iterator to the first element equal or after the val.
2727 */
2828export function lower_bound <
29- ForwardIterator extends Readonly <
30- IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
31- > ,
29+ ForwardIterator extends Readonly <
30+ IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
31+ > ,
3232> (
33- first : ForwardIterator ,
34- last : ForwardIterator ,
35- val : IPointer . ValueType < ForwardIterator > ,
36- comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
33+ first : ForwardIterator ,
34+ last : ForwardIterator ,
35+ val : IPointer . ValueType < ForwardIterator > ,
36+ comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
3737) : ForwardIterator {
38- let count : number = distance ( first , last ) ;
38+ let count : number = distance ( first , last ) ;
3939
40- while ( count > 0 ) {
41- const step : number = Math . floor ( count / 2 ) ;
42- const it : ForwardIterator = advance ( first , step ) ;
40+ while ( count > 0 ) {
41+ const step : number = Math . floor ( count / 2 ) ;
42+ const it : ForwardIterator = advance ( first , step ) ;
4343
44- if ( comp ( it . value , val ) ) {
45- first = it . next ( ) ;
46- count -= step + 1 ;
47- } else count = step ;
48- }
49- return first ;
44+ if ( comp ( it . value , val ) ) {
45+ first = it . next ( ) ;
46+ count -= step + 1 ;
47+ } else count = step ;
48+ }
49+ return first ;
5050}
5151
5252/**
@@ -60,27 +60,27 @@ export function lower_bound<
6060 * @return Iterator to the first element after the key.
6161 */
6262export function upper_bound <
63- ForwardIterator extends Readonly <
64- IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
65- > ,
63+ ForwardIterator extends Readonly <
64+ IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
65+ > ,
6666> (
67- first : ForwardIterator ,
68- last : ForwardIterator ,
69- val : IPointer . ValueType < ForwardIterator > ,
70- comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
67+ first : ForwardIterator ,
68+ last : ForwardIterator ,
69+ val : IPointer . ValueType < ForwardIterator > ,
70+ comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
7171) : ForwardIterator {
72- let count : number = distance ( first , last ) ;
72+ let count : number = distance ( first , last ) ;
7373
74- while ( count > 0 ) {
75- const step : number = Math . floor ( count / 2 ) ;
76- const it : ForwardIterator = advance ( first , step ) ;
74+ while ( count > 0 ) {
75+ const step : number = Math . floor ( count / 2 ) ;
76+ const it : ForwardIterator = advance ( first , step ) ;
7777
78- if ( ! comp ( val , it . value ) ) {
79- first = it . next ( ) ;
80- count -= step + 1 ;
81- } else count = step ;
82- }
83- return first ;
78+ if ( ! comp ( val , it . value ) ) {
79+ first = it . next ( ) ;
80+ count -= step + 1 ;
81+ } else count = step ;
82+ }
83+ return first ;
8484}
8585
8686/**
@@ -94,19 +94,19 @@ export function upper_bound<
9494 * @return Pair of {@link lower_bound} and {@link upper_bound}.
9595 */
9696export function equal_range <
97- ForwardIterator extends Readonly <
98- IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
99- > ,
97+ ForwardIterator extends Readonly <
98+ IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
99+ > ,
100100> (
101- first : ForwardIterator ,
102- last : ForwardIterator ,
103- val : IPointer . ValueType < ForwardIterator > ,
104- comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
101+ first : ForwardIterator ,
102+ last : ForwardIterator ,
103+ val : IPointer . ValueType < ForwardIterator > ,
104+ comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
105105) : Pair < ForwardIterator , ForwardIterator > {
106- first = lower_bound ( first , last , val , comp ) ;
107- const second : ForwardIterator = upper_bound ( first , last , val , comp ) ;
106+ first = lower_bound ( first , last , val , comp ) ;
107+ const second : ForwardIterator = upper_bound ( first , last , val , comp ) ;
108108
109- return new Pair ( first , second ) ;
109+ return new Pair ( first , second ) ;
110110}
111111
112112/**
@@ -120,16 +120,16 @@ export function equal_range<
120120 * @return Whether the value exists or not.
121121 */
122122export function binary_search <
123- ForwardIterator extends Readonly <
124- IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
125- > ,
123+ ForwardIterator extends Readonly <
124+ IForwardIterator < IPointer . ValueType < ForwardIterator > , ForwardIterator >
125+ > ,
126126> (
127- first : ForwardIterator ,
128- last : ForwardIterator ,
129- val : IPointer . ValueType < ForwardIterator > ,
130- comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
127+ first : ForwardIterator ,
128+ last : ForwardIterator ,
129+ val : IPointer . ValueType < ForwardIterator > ,
130+ comp : Comparator < IPointer . ValueType < ForwardIterator > > = less ,
131131) : boolean {
132- first = lower_bound ( first , last , val , comp ) ;
132+ first = lower_bound ( first , last , val , comp ) ;
133133
134- return ! first . equals ( last ) && ! comp ( val , first . value ) ;
134+ return ! first . equals ( last ) && ! comp ( val , first . value ) ;
135135}
0 commit comments