nv-array-small-fifo
v1.0.0
Published
nv-array-small-fifo =================== - nv-array-small-fifo - small-fixed-size-array, slightly faster than the-built-in-array-methods if size is small (<=8) - its a simplified version of nv-facutil-cache-cursor AND nv-facutil-fixed-cache-cursor - for
Downloads
3
Readme
nv-array-small-fifo
- nv-array-small-fifo
- small-fixed-size-array, slightly faster than the-built-in-array-methods if size is small (<=8)
- its a simplified version of nv-facutil-cache-cursor AND nv-facutil-fixed-cache-cursor
- for test u64-shape(a special generic-type which includes all-8byte-length-data-type) in nvlang
install
- npm install nv-array-small-fifo
usage
const creat_sfifo = require("nv-array-small-fifo");
var sfifo = creat_sfifo(
8 , /* capacity: default is 8 */
undefined /* nihil OR empty: default is undefined in js-version*/
);
example
push AND pop
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo
Sfifo(8) [
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 0
]
> sfifo.push_one(11)
undefined
> sfifo.push_one(22)
undefined
> sfifo.push_one(33)
undefined
> sfifo.push_one(44)
undefined
> sfifo.push_one(55)
undefined
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 5
]
> sfifo.push_one(66)
undefined
> sfifo.push_one(77)
undefined
> sfifo.push_one(88)
undefined
> sfifo.push_one(99)
undefined
> sfifo
Sfifo(8) [
22,
33,
44,
55,
66,
77,
88,
99,
'#empty': undefined,
'#ei': 8
]
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo.push(11,22,33,44,55,66,77,88,99);
8
> sfifo
Sfifo(8) [
22,
33,
44,
55,
66,
77,
88,
99,
'#empty': undefined,
'#ei': 8
]
> sfifo.push(11,22,33,44,55)
8
> sfifo
Sfifo(8) [
77,
88,
99,
11,
22,
33,
44,
55,
'#empty': undefined,
'#ei': 8
]
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo.push(11,22,33,44,55)
5
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 5
]
> sfifo.push(66,77)
7
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
66,
77,
undefined,
'#empty': undefined,
'#ei': 7
]
> sfifo.push(88,99,'aa')
8
> sfifo
Sfifo(8) [
33,
44,
55,
66,
77,
88,
99,
'aa',
'#empty': undefined,
'#ei': 8
]
> sfifo.pop_one()
'aa'
> sfifo.pop_one()
99
> sfifo
Sfifo(8) [
33,
44,
55,
66,
77,
88,
undefined,
undefined,
'#empty': undefined,
'#ei': 6
]
> sfifo.pop(3)
[ 66, 77, 88 ]
> sfifo
Sfifo(8) [
33,
44,
55,
undefined,
undefined,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 3
]
>
unshift AND shift
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo.unshift_one(11)
undefined
> sfifo.unshift_one(22)
undefined
> sfifo.unshift_one(33)
undefined
> sfifo.unshift_one(44)
undefined
> sfifo.unshift_one(55)
undefined
> sfifo
Sfifo(8) [
55,
44,
33,
22,
11,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 5
]
> sfifo.unshift_one(66)
undefined
> sfifo.unshift_one(77)
undefined
> sfifo.unshift_one(88)
undefined
> sfifo.unshift_one(99)
undefined
> sfifo
Sfifo(8) [
99,
88,
77,
66,
55,
44,
33,
22,
'#empty': undefined,
'#ei': 8
]
>
>
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo.unshift(11,22,33,44,55,66,77,88,99);
8
> sfifo
Sfifo(8) [
22,
33,
44,
55,
66,
77,
88,
99,
'#empty': undefined,
'#ei': 8
]
> sfifo.unshift(11,22,33,44,55)
8
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
22,
33,
44,
'#empty': undefined,
'#ei': 8
]
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo.unshift(11,22,33,44,55)
5
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 5
]
> sfifo.unshift(66,77)
7
> sfifo
Sfifo(8) [
66,
77,
11,
22,
33,
44,
55,
undefined,
'#empty': undefined,
'#ei': 7
]
> sfifo.unshift(88,99,'aa')
8
> sfifo
Sfifo(8) [
88,
99,
'aa',
66,
77,
11,
22,
33,
'#empty': undefined,
'#ei': 8
]
> sfifo.shift_one()
88
> sfifo.shift_one()
99
> sfifo
Sfifo(8) [
'aa',
66,
77,
11,
22,
33,
undefined,
undefined,
'#empty': undefined,
'#ei': 6
]
> sfifo.shift(3)
[ 'aa', 66, 77 ]
> sfifo
Sfifo(8) [
11,
22,
33,
undefined,
undefined,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 3
]
>
insert AND add inorder
//if(size>=16) rb-tree-is-better , if size-is-small, directly cmp AND insert is better
> var sfifo = creat_sfifo(8,undefined);
undefined
> sfifo.add_one_in_order_
sfifo.add_one_in_order_fwdly sfifo.add_one_in_order_without_check_fwdly
> sfifo.add_one_in_order_fwdly(33)
true
> sfifo.add_one_in_order_fwdly(22)
true
> sfifo
Sfifo(8) [
22,
33,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
'#empty': undefined,
'#ei': 2
]
> sfifo.add_one_in_order_fwdly(88)
true
> sfifo.add_one_in_order_fwdly(77)
true
> sfifo.add_one_in_order_fwdly(55)
true
> sfifo.add_one_in_order_fwdly(44)
true
> sfifo.add_one_in_order_fwdly(66)
true
> sfifo.add_one_in_order_fwdly(11)
true
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
66,
77,
88,
'#empty': undefined,
'#ei': 8
]
> sfifo.add_one_in_order_fwdly(99)
false
> sfifo
Sfifo(8) [
11,
22,
33,
44,
55,
66,
77,
88,
'#empty': undefined,
'#ei': 8
]
>
METHODS
sfifo._slc sfifo.add_one_in_order_fwdly sfifo.add_one_in_order_without_check_fwdly sfifo.capacity_
sfifo.constructor sfifo.ei4add_ sfifo.empty_ sfifo.find_insert_bfr_idx
sfifo.insert_one_aft_idx_fwdly sfifo.insert_one_bfr_idx_fwdly sfifo.insert_one_bfr_idx_without_check_fwdly sfifo.insert_some_aft_idx_fwdly
sfifo.insert_some_bfr_idx_fwdly sfifo.is_empty sfifo.is_full sfifo.lefted_
sfifo.lst_ sfifo.lsti_ sfifo.pop sfifo.pop_one
sfifo.pop_one_without_check sfifo.pop_some sfifo.push sfifo.push_one
sfifo.push_one_without_check sfifo.push_some sfifo.shift sfifo.shift_one
sfifo.shift_one_without_check sfifo.shift_some sfifo.slc sfifo.sz_
sfifo.to_ary sfifo.unshift sfifo.unshift_one sfifo.unshift_one_without_check
sfifo.unshift_some
API
LICENSE
- ISC