1. A system for analyzing entity performance, the system comprising:
a memory device that stores a set of instructions;
one or more processors configured to execute the set of instructions that cause the one or more processors to:
receive a request with one or more filter selections;
access a data structure comprising a plurality of categories of information showing interactions associated with multiple entities, wherein the set of categories includes location information associated with the multiple entities, and wherein the location information is based on a computed affinity score;
identify a set of categories of the plurality of categories within the data structure based on the one or more filter selections;
process the information of the identified categories to analyze a performance of one or more entities of the multiple entities in accordance with the one or more filter selections; and
provide the processed information to display the performance of the one or more entities on a user interface.
2. The system of claim 1, wherein a first entity of the one or more entities is a provisioning entity.
3. The system of claim 1, wherein the plurality of categories of the data structure include at least one of: an interaction number category, a consuming entity identification category, a consuming entity location category, a provisioning entity identification category, a provisioning entity location category, a type of provisioning entity category, an interaction amount category, and a time of interaction category.
4. The system of claim 1, wherein the user interface includes one or more of:
a representation of a geographic region;
a representation of one or more locations of the one or more entities overlaid on the geographic region; and
a representation of sub-geographic regions overlaid on the geographic region.
5. The system of claim 1, wherein the one or more filter selections are mapped to one or more of the several categories of the data structure.
6. The system of claim 1, wherein the set of instructions further cause the one or more processors to analyze performance of a first entity or a first group of entities of the one or more entities, and a second entity or a second group of entities of the one or more entities.
7. A method for analyzing entity performance, the method being performed by one or more processors and comprising:
receiving a request with one or more filter selections;
accessing a data structure comprising a plurality of categories of information showing interactions associated with multiple entities;
identifying a set of categories of the plurality of categories within the data structure based on the one or more filter selections, wherein the set of categories includes location information associated with the multiple entities, and wherein the location information is based on a computed affinity score;
processing the information of the identified categories to analyze a performance of one or more entities of the multiple entities in accordance with the one or more filter selections; and
providing the processed information to display the performance of the one or more entities on a user interface.
8. The method of claim 7, wherein a first entity of the one or more entities is a provisioning entity.
9. The method of claim 7, wherein the plurality of categories of the data structure include at least one of: an interaction number category, a consuming entity identification category, a consuming entity location category, a provisioning entity identification category, a provisioning entity location category, a type of provisioning entity category, an interaction amount category, and a time of interaction category.
10. The method of claim 7, wherein the user interface includes one or more of:
a representation of a geographic region;
a representation of one or more locations of the one or more entities overlaid on the geographic region; and
a representation of sub-geographic regions overlaid on the geographic region.
11. The method of claim 7, wherein the one or more filter selections are mapped to one or more of the several categories of the data structure.
12. The method of claim 7, wherein the one or more filter selections are associated with a particular user interface of a plurality of user interfaces, the particular user interface displays a representation associated with the one or more filter selections overlaid on a geographic region.
13. The method of claim 7, further comprising analyzing performance of a first entity or a first group of entities of the one or more entities, and a second entity or a second group of entities of the one or more entities.
14. A non-transitory computer-readable medium storing a set of instructions that are executable by one or more processors of one or more servers to cause the one or more servers to perform a method for discovering application compatibility status, the method comprising:
receiving a request with one or more filter selections;
accessing a data structure comprising a plurality of categories of information showing interactions associated with multiple entities;
identifying a set of categories of the plurality of categories within the data structure based on the one or more filter selections, wherein the set of categories includes location information associated with the multiple entities, and wherein the location information is based on a computed affinity score;
processing the information of the identified categories to analyze a performance of one or more entities of the multiple entities in accordance with the one or more filter selections; and
providing the processed information to display the performance of the one or more entities on a user interface.
15. The computer-readable medium of claim 14, wherein a first entity of the one or more entities is a provisioning entity.
16. The computer-readable medium of claim 14, wherein the plurality of categories of the data structure include at least one of: an interaction number category, a consuming entity identification category, a consuming entity location category, a provisioning entity identification category, a provisioning entity location category, a type of provisioning entity category, an interaction amount category, and a time of interaction category.
17. The computer-readable medium of claim 14, wherein the user interface includes one or more of:
a representation of a geographic region;
a representation of one or more locations of the one or more entities overlaid on the geographic region; and
a representation of sub-geographic regions overlaid on the geographic region.
18. The computer-readable medium of claim 14, wherein the one or more filter selections are mapped to one or more of the several categories of the data structure.
19. The computer-readable medium of claim 14, wherein the one or more filter selections are associated with a particular user interface of a plurality of user interfaces, the particular user interface displays a representation associated with the one or more filter selections overlaid on a geographic region.
20. The computer-readable medium of claim 14, wherein the instructions further cause the one or more servers to analyze performance of a first entity or a first group of entities of the one or more entities, and a second entity or a second group of entities of the one or more entities.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method in a computer system for building binary decision diagrams of a circuit design comprising:
building a binary decision diagram for at least one node in a netlist graph representation of a circuit design;
selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design;
building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero;
building a second binary decision diagram for the case of said at least one variable having a constant logical value of one;
determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all;
in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram;
generating said binary decision diagrams in said computer system;
storing one or more of said binary decision diagrams in a computer-readable storage device, whereby said one or more binary decision diagrams has a reduced number of peak live nodes;
selecting a variable for a comparison with a reduction threshold, wherein said variable is included in the greatest number of nodes among all live binary decision diagrams;
comparing the reduction of nodes obtained by setting said variable to a constant value with said reduction threshold;
in response to determining that said reduction is greater than said reduction threshold, selecting said variable for case-splitting; and
in response to determining that said reduction is less than said reduction threshold, selecting a different variable for a comparison with said reduction threshold.
2. The method according to claim 1, wherein at least one variable is selected for case-splitting when the step of building a binary decision diagram for at least one node in a netlist graph representation of a circuit design exceeds a predefined resource limit of said computer system.
3. The method according to claim 1, further comprising:
in response to selecting more than one variable for case-splitting,
storing a state of all live binary decision diagrams for each case-split on a stack in a system memory of said computer system; and
reading said state of all live binary decision diagrams for each case-split from said memory stack in said computer system.
4. The method according to claim 3, wherein the storing and reading steps are performed in a first-in first-out (FIFO) manner.
5. The method according to claim 1, wherein the step of selecting a variable for case-splitting is biased toward selecting a variable that is scheduled to be quantified out.
6. The method according to claim 1, wherein the step of selecting a variable for case-splitting is biased toward selecting a variable that, when assigned a constant value, results in the reduction of the greatest number of nodes among all live binary decision diagrams.
7. A system for building binary decision diagrams of a circuit design comprising:
a processor;
a data bus coupled to the processor; and
a computer-usable storage device embodying computer program code, the computer-usable storage device being coupled to the data bus, the computer program code comprising instructions executable by the processor and configured for:
building a binary decision diagram for at least one node in a netlist graph representation of a circuit design;
selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design;
building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero;
building a second binary decision diagram for the case of said at least one variable having a constant logical value of one;
determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all;
in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram;
storing one or more of said binary decision diagrams in said computer-readable storage device, whereby said one or more binary decision diagrams has a reduced number of peak live nodes;
selecting a variable for a comparison with a reduction threshold, wherein said variable is included in the greatest number of nodes among all live binary decision diagrams;
comparing the reduction of nodes obtained by setting said variable to a constant value with said reduction threshold;
in response to determining that said reduction is greater than said reduction threshold, selecting said variable for case-splitting; and
in response to determining that said reduction is less than said reduction threshold, selecting a different variable for a comparison with said reduction threshold.
8. The system according to claim 7, wherein at least one variable is selected for case-splitting when the step of building a binary decision diagram for at least one node in a netlist graph representation of a circuit design exceeds a predefined resource limit of said computer system.
9. The system according to claim 7, further comprising:
in response to selecting more than one variable for case-splitting:
storing a state of all live binary decision diagrams for each case-split on a stack in a system memory of said computer system; and
reading said state of all live binary decision diagrams for each case-split from said memory stack in said computer system.
10. The system according to claim 9, wherein the storing and reading steps are performed in a first-in first-out (FIFO) manner.
11. The system according to claim 7, wherein the step of selecting a variable for case-splitting is biased toward selecting a variable that is scheduled to be quantified out.
12. The system according to claim 7, wherein the step of selecting a variable for case-splitting is biased toward selecting a variable that, when assigned a constant value, results in the reduction of the greatest number of nodes among all live binary decision diagrams.
13. A computer-readable storage device encoded with a computer program that, when executed by a computer, performs the steps of:
building a binary decision diagram for at least one node in a netlist graph representation of a circuit design;
selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design;
building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero;
building a second binary decision diagram for the case of said at least one variable having a constant logical value of one;
determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all;
in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram;
generating said binary decision diagrams in said computer system;
storing one or more of said binary decision diagrams in said computer-readable storage device, whereby said one or more binary decision diagrams has a reduced number of peak live nodes;
selecting a variable for a comparison with a reduction threshold, wherein said variable is included in the greatest number of nodes among all live binary decision diagrams;
comparing the reduction of nodes obtained by setting said variable to a constant value with said reduction threshold;
in response to determining that said reduction is greater than said reduction threshold, selecting said variable for case-splitting; and
in response to determining that said reduction is less than said reduction threshold, selecting a different variable for a comparison with said reduction threshold.
14. The computer-readable storage device according to claim 13, wherein at least one variable is selected for case-splitting when the step of building a binary decision diagram for at least one node in a netlist graph representation of a circuit design exceeds a predefined resource limit of said computer system.
15. The computer-readable storage device according to claim 13, further comprising:
in response to selecting more than one variable for case-splitting,
storing a state of all live binary decision diagrams for each case-split on a stack in a system memory of said computer system; and
reading said state of all live binary decision diagrams for each case-split from said memory stack in said computer system.
16. The computer-readable storage device according to claim 15, wherein the storing and reading steps are performed in a first-in first-out (FIFO) manner.
17. The computer-readable storage device according to claim 13, wherein the step of selecting a variable for case-splitting is biased toward selecting a variable that is scheduled to be quantified out.