1. A computer-program product, comprising:
tangible computer-readable media having instructions that are executable by a computer to generate a customized spectral profile, the instructions comprising:
generating a trial source spectrum;
determining an uncorrected lamp source spectrum;
calculating one or more optical indices using the trial source spectrum or the uncorrected lamp source spectrum; and
optimizing one or more of the optical indices by varying the trial source spectrum to generate the customized spectral profile.
2. The computer-program product of claim 1, where the instructions further comprise:
calculating a corrected lamp source spectrum using the uncorrected lamp source spectrum, and the optical indices being calculated using the trial source spectrum, the uncorrected lamp source spectrum, or the corrected lamp source spectrum.
3. The computer-program product of claim 1, where the optical indices comprise one or more of chromaticity, filter efficiency, lumens per watt efficiency, overall filter efficiency, watt reduction criteria, color rendering index, and modified color rendering index.
4. The computer-program product of claim 3, where one or more of the optical indices correspond to a specific object to be illuminated.
5. The computer-program product of claim 4, where the specific object comprises a work of art.
6. The computer-program product of claim 1, where optimizing comprises:
varying the trial source spectrum by changing one or more parameters of contributing functions of the trial source spectrum or changing individual values of the trial source spectrum at different wavelengths.
7. The computer-program product of claim 1, where the customized spectral profile comprises a spectral profile for protecting an object from photodamage.
8. The computer-program product of claim 7, where the spectral profile is configured to render only photometric light.
9. The computer-program product of claim 7, where the object comprising a work of art.
10. The computer-program product of claim 1, where the customized spectral profile comprises a spectral profile for aesthetically rendering an object.
11. The computer-program product of claim 10, where the spectral profile comprises a candlelight profile for rendering the object as if illuminated by candlelight.
12. The computer-program product of claim 10, where the spectral profile comprises a torchlight profile for rendering the object as if illuminated by torchlight.
13. The computer-program product of claim 10, where the spectral profile comprises a fluorescent profile for rendering the object as if illuminated by fluorescent lighting.
14. The computer-program product of claim 10, where the spectral profile comprises an incandescent profile for rendering the object as if illuminated by an incandescent light.
15. The computer-program product of claim 10, where the spectral profile comprises a halogen profile for rendering the object as if illuminated by halogen-based lighting.
16. The computer-program product of claim 10, where the spectral profile comprises an oil lamp profile for rendering the object as if illuminated by an oil lamp.
17. The computer-program product of claim 10, where the spectral profile comprises a daylight profile for rendering the object as if illuminated by sunlight.
18. The computer-program product of claim 10, where the spectral profile comprises a roomlight profile for rendering the object as if illuminated by sunlight or candlelight scattered in a room.
19. The computer-program product of claim 10, where the spectral profile comprises a gas light profile for rendering the object as if illuminated by a gas light.
20. The computer-program product of claim 10, where the spectral profile comprises a lime light profile for rendering the object as if illuminated by a lime light.
21. The computer-program product of claim 10, where the spectral profile comprises a mantle-light profile for rendering the object as if illuminated by a Welsbach mantle.
22. The computer-program product of claim 10, where the spectral profile comprises an emphasis profile for emphasizing one or more colors of the object.
23. The computer-program product of claim 1, where the customized spectral profile comprises a spectral profile for correcting the rendering an object.
24. The computer-program product of claim 23, where the spectral profile comprises a profile for correcting the rendering of the object for an eye experiencing loss of vision with respect to one or more colors.
25. A method for making an optical filter, comprising:
forming an optical filter having a customized spectral profile, the customized spectral profile generated by optimizing one or more optical indices by varying a trial source spectrum, the optical indices being calculated using a trial source spectrum or an uncorrected lamp source spectrum.
26. An apparatus comprising:
an optical filter having a customized spectral profile, the customized spectral profile being generated by optimizing one or more optical indices by varying a trial source spectrum, the optical indices being calculated using a trial source spectrum or an uncorrected lamp source spectrum.
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 firewall device, for performing an operation on a received data packet, the method comprising:
receiving a data packet at a network interface of the firewall device, wherein the data packet has a plurality of header field values and wherein each header field value has a different header field value type and each header field value type is associated with a different hash table within a plurality of hash tables;
performing, by the firewall device, a plurality of hash operations on the plurality of header field values to generate a plurality of hash values;
performing, by the firewall device, a plurality of lookup operations in the plurality of hash tables based on the plurality of hash values to identify a plurality of hash table entries;
retrieving, from a rule set storage of the firewall device, a bit string associated with each of the plurality of hash table entries, wherein each bit in the bit string corresponds to a class of rules of a rule set of a firewall and specifies a list of fallback sets of rules thereby generating a plurality of lists of fallback sets of rules;
identifying an intersection of the plurality of lists of fallback sets of rules;
searching, by the firewall device, search trees of fallback sets of rules present in the intersection; and
performing, by the firewall device, an operation on the data packet based on one or more rules resulting from searching the search trees of fallback sets of rules present in the intersection.
2. The method of claim 1, wherein performing a matching operation of the header field value to rules in one or more classes of rules corresponding to bits set in the bit string comprises performing a G-filter search of search trees associated with fallback sets of rules in the one or more classes of rules.
3. The method of claim 1, wherein the plurality of header field value types comprises a source address, a destination address, and a destination port number.
4. The method of claim 1, wherein, in response to the header field value type being an address, performing the hash operation on a header field value of a header of the data packet to generate a hash value comprises performing a hash of the two most significant bytes of the header field value to generate the hash value.
5. The method of claim 1, wherein, in response to the header field value type being a destination port number, performing the hash operation on a header field value of a header of the data packet to generate a hash value comprises performing a hash of the middle 8-bits of the header field value.
6. The method of claim 1, wherein bits in the bit string are arranged according to a listing of fallback sets of rules in a full set of rules according to an ordering of fallback set identifiers associated with the fallback sets of rules, wherein a position in the ordering of the fallback set identifiers of a fallback set identifier represents an index into the bit string identifying a corresponding bit in the bit string for a fallback set of rules associated with the fallback set identifier.
7. The method of claim 1, wherein performing an operation based on zero or more rules comprises at least one of blocking transmission of the data packet, allowing transmission of the data packet, sending a notification to an administrator, or logging the data packet in a log data structure.
8. A computer program product comprising a non-transitory computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a firewall device, causes the firewall device to:
receive a data packet, wherein the data packet has a plurality of header field values and wherein each header field value has a different header field value type and each header field value type is associated with a different hash table within a plurality of hash tables;
perform a plurality of hash operations on the plurality of header field values to generate a plurality of hash values;
perform a plurality of lookup operations in the plurality of hash tables based on the plurality of hash values to identify a plurality of hash table entries;
retrieve a bit string associated with each of the plurality of hash table entries, wherein each bit in the bit string corresponds to a class of rules of a rule set of a firewall and specifies a list of fallback sets of rules thereby generating a plurality of lists of fallback sets of rules;
identify an intersection of the plurality of lists of fallback sets of rules;
perform a search of search trees of fallback sets of rules present in the intersection; and
perform an operation based on one or more rules resulting from searching the search trees of fallback sets of rules present in the intersection.
9. The computer program product of claim 8, wherein the computer readable program further causes the computing device to perform a matching operation of the header field value to rules in one or more classes of rules corresponding to bits set in the bit string at least by performing a G-filter search of search trees associated with fallback sets of rules in the one or more classes of rules.
10. The computer program product of claim 8, wherein the plurality of header field value types comprises a source address, a destination address, and a destination port number.
11. The computer program product of claim 8, wherein, in response to the header field value type being an address, the computer readable program further causes the computing device to perform the hash operation on a header field value of a header of the data packet to generate a hash value at least by performing a hash of the two most significant bytes of the header field value to generate the hash value.
12. The computer program product of claim 8, wherein, in response to the header field value type being a destination port number, the computer readable program further causes the computing device to perform the hash operation on a header field value of a header of the data packet to generate a hash value at least by performing a hash of the middle 8-bits of the header field value.
13. The computer program product of claim 8, wherein bits in the bit string are arranged according to a listing of fallback sets of rules in a full set of rules according to an ordering of fallback set identifiers associated with the fallback sets of rules, wherein a position in the ordering of the fallback set identifiers of a fallback set identifier represents an index into the bit string identifying a corresponding bit in the bit string for a fallback set of rules associated with the fallback set identifier.
14. The computer program product of claim 8, wherein performing an operation based on zero or more rules comprises at least one of blocking transmission of the data packet, allowing transmission of the data packet, sending a notification to an administrator, or logging the data packet in a log data structure.
15. An firewall device, comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:
receive a data packet, wherein the data packet has a plurality of header field values and wherein each header field value has a different header field value type and each header field value type is associated with a different hash table within a plurality of hash tables;
perform a plurality of hash operations on the plurality of header field values to generate a plurality of hash values;
perform a plurality of lookup operations in the plurality of hash tables based on the plurality of hash values to identify a plurality of hash table entries;
retrieve a bit string associated with each of the plurality of hash table entries, wherein each bit in the bit string corresponds to a class of rules of a rule set of a firewall and specifies a list of fallback sets of rules thereby generating a plurality of lists of fallback sets of rules;
identify an intersection of the plurality of lists of fallback sets of rules;
perform a search of search trees of fallback sets of rules present in the intersection; and
perform an operation based on one or more rules resulting from searching the search trees of fallback sets of rules present in the intersection.
16. The firewall device of claim 15, wherein the instructions cause the processor to perform a matching operation of the header field value to rules in one or more classes of rules corresponding to bits set in the bit string at least by performing a G-filter search of search trees associated with fallback sets of rules in the one or more classes of rules.