Tiered arrays
First Claim
1. A computer-implemented method comprising:
- receiving a request to compute, for an overall range of indexes comprising set indexes having non-default values and unset indexes having default values, all contiguous ranges of unset indexes within the overall range of indexes,wherein the overall range of indexes is represented by a tiered array having a plurality of tiers, wherein each tier of the tiered array comprises one or more catalogs,wherein each catalog in each tier, except for a bottom-most tier, comprises (i) non-default elements that each identify a respective catalog at a lower tier and (ii) default elements that do not identify any catalogs, andwherein each bottom-most catalog in the bottom-most tier comprises one or more non-default elements having non-default values, each non-default value being stored at a respective index value in the bottom-most catalog;
setting a reference index to be initially equal to a minimum index, the minimum index corresponding to an index that is first in an ordering of the overall range of indexes;
performing a search, from the reference index, for a first range [a0, b0] of contiguously set indexes having non-default values, wherein a0 is a first index in the first range of contiguously set indexes and b0 is a last index in the first range of contiguously set indexes, wherein the index a0 is a first index in the tiered array having a non-default value;
if a0 is greater than the minimum index, generating a range of indexes [0, a0−
1] having default values, wherein a0−
1 is a last index in the range of indexes having default values;
repeatedly performing the following operations until an end of the tiered array is reached;
setting the reference index to be equal to b0+2;
performing a search, from the reference index, for a next range [a1, b1] of contiguously set indexes starting at or after the index b0+2,after obtaining the next range of contiguously set indexes, outputting generating a range of indexes [b0+1, a1−
1] having default values, andupdating b0 to be equal to b1; and
providing, in response to the request, the generated pairs of index values representing the contiguous ranges of unset indexes within the overall range of indexes.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for using tiered arrays to represent aggregated software dependencies. One of the methods includes receiving a request to generate a range of contiguous indexes having non-default values represented by a tiered array, wherein each non-default element of each tier is a reference to a catalog at a lower tier except for a bottom-most tier of the tiered array that stores non-default values. After descending one or more tiers to identify a first index that (i) is greater than or equal to the start index and (ii) has a non-default value, a system ascends one or more tiers in the tiered array and subsequently descends again to identify a second index that is a last index in a contiguous sequence of indexes having non-default values from the first index up to and including the second index.
-
Citations
21 Claims
-
1. A computer-implemented method comprising:
-
receiving a request to compute, for an overall range of indexes comprising set indexes having non-default values and unset indexes having default values, all contiguous ranges of unset indexes within the overall range of indexes, wherein the overall range of indexes is represented by a tiered array having a plurality of tiers, wherein each tier of the tiered array comprises one or more catalogs, wherein each catalog in each tier, except for a bottom-most tier, comprises (i) non-default elements that each identify a respective catalog at a lower tier and (ii) default elements that do not identify any catalogs, and wherein each bottom-most catalog in the bottom-most tier comprises one or more non-default elements having non-default values, each non-default value being stored at a respective index value in the bottom-most catalog; setting a reference index to be initially equal to a minimum index, the minimum index corresponding to an index that is first in an ordering of the overall range of indexes; performing a search, from the reference index, for a first range [a0, b0] of contiguously set indexes having non-default values, wherein a0 is a first index in the first range of contiguously set indexes and b0 is a last index in the first range of contiguously set indexes, wherein the index a0 is a first index in the tiered array having a non-default value; if a0 is greater than the minimum index, generating a range of indexes [0, a0−
1] having default values, wherein a0−
1 is a last index in the range of indexes having default values;repeatedly performing the following operations until an end of the tiered array is reached; setting the reference index to be equal to b0+2; performing a search, from the reference index, for a next range [a1, b1] of contiguously set indexes starting at or after the index b0+2, after obtaining the next range of contiguously set indexes, outputting generating a range of indexes [b0+1, a1−
1] having default values, andupdating b0 to be equal to b1; and providing, in response to the request, the generated pairs of index values representing the contiguous ranges of unset indexes within the overall range of indexes. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising; receiving a request to compute, for an overall range of indexes comprising set indexes having non-default values and unset indexes having default values, all contiguous ranges of unset indexes within the overall range of indexes, wherein the overall range of indexes is represented by a tiered array having a plurality of tiers, wherein each tier of the tiered array comprises one or more catalogs, wherein each catalog in each tier, except for a bottom-most tier, comprises (i) non-default elements that each identify a respective catalog at a lower tier and (ii) default elements that do not identify any catalogs, and wherein each bottom-most catalog in the bottom-most tier comprises one or more non-default elements having non-default values, each non-default value being stored at a respective index value in the bottom-most catalog; setting a reference index to be initially equal to a minimum index, the minimum index corresponding to an index that is first in an ordering of the overall range of indexes; performing a search, from the reference index, for a first range [a0, b0] of contiguously set indexes having non-default values, wherein a0 is a first index in the first range of contiguously set indexes and b0 is a last index in the first range of contiguously set indexes, wherein the index a0 is a first index in the tiered array having a non-default value; if a0 is greater than the minimum index, generating a range of indexes [0, a0−
1] having default values, wherein a0−
1 is a last index in the range of indexes having default values;repeatedly performing the following operations until an end of the tiered array is reached; setting the reference index to be equal to b0+2; performing a search, from the reference index, for a next range [a1, b1] of contiguously set indexes starting at or after the index b0+2, after obtaining the next range of contiguously set indexes, generating a range of indexes [b0+1, a1−
1] having default values, andupdating b0 to be equal to b1; and providing, in response to the request, the generated pairs of index values representing the contiguous ranges of unset indexes within the overall range of indexes. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
-
receiving a request to compute, for an overall range of indexes comprising set indexes having non-default values and unset indexes having default values, all contiguous ranges of unset indexes within the overall range of indexes, wherein the overall range of indexes is represented by a tiered array having a plurality of tiers, wherein each tier of the tiered array comprises one or more catalogs, wherein each catalog in each tier, except for a bottom-most tier, comprises (i) non-default elements that each identify a respective catalog at a lower tier and (ii) default elements that do not identify any catalogs, and wherein each bottom-most catalog in the bottom-most tier comprises one or more non-default elements having non-default values, each non-default value being stored at a respective index value in the bottom-most catalog; setting a reference index to be initially equal to a minimum index, the minimum index corresponding to an index that is first in an ordering of the overall range of indexes; performing a search, from the reference index, for a first range [a0, b0] of contiguously set indexes having non-default values, wherein a0 is a first index in the first range of contiguously set indexes and b0 is a last index in the first range of contiguously set indexes, wherein the index a0 is a first index in the tiered array having a non-default value; if a0 is greater than the minimum index, generating a range of indexes [0, a0−
1] having default values, wherein a0−
1 is a last index in the range of indexes having default values;repeatedly performing the following operations until an end of the tiered array is reached; setting the reference index to be equal to b0+2; performing a search, from the reference index, for a next range [a1, b1] of contiguously set indexes starting at or after the index b0+2, after obtaining the next range of contiguously set indexes, generating a range of indexes [b0+1, a1−
1] having default values, andupdating b0 to be equal to b1; and providing, in response to the request, the generated pairs of index values representing the contiguous ranges of unset indexes within the overall range of indexes. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification