Abstract:
A computer implemented method (200) is described for determining the equivalence of two sets of simultaneous linear algebraic equations. Each of said equations is of a form: ei1x1+ei2x2+ei3x3+ . . . +eiixn=bi where xj are unknowns, eij are coefficients and bi are quantities, and defining the relationship between the unknowns within the set. The coefficients and quantities are known algebraic expressions. The unknowns are iteratively eliminated (250 to 280) from each of the sets of simultaneous linear algebraic equations until each of said equations are in the form: (lii)kxi=(ri)k wherein lii and ri are algebraic expressions, and k={1;2} indicate one of said sets that said equation is derived from. The products (lii)1*(ri)2 and (lii)2*(ri)1 are compared (300) for each of the unknowns. Only if the products match (310) for all the unknowns are the two sets of simultaneous linear algebraic equations equivalent (312). An apparatus (100) for performing the above method (200) is also provided.
Abstract:
The present invention is a method (100) of determining the syntactic correctness of an expression for use in a computing environment. After creating (30) a string of characters from said expression, it looks for substrings (character sequences), which are legitimate and replaces (54) them with a shorter but semantically equivalent substring. It also looks for character sequences which are illegitimate, and replaces (54) them with a substring (i.e. “?”) to indicate that it has met with an illegal sequence. It does these operations repeatedly, and in predetermined sequences, till no further changes in the string can be made; that is, the string achieves a constant length. An expression is determined to be syntactically correct only if said string reduces to a single predetermined character.
Abstract:
In a compiler or program proving or verification software code, it is often useful to analyse a computer program and one way in which this might be partially achieved is by comparing algebraic expressions to see if they are equivalent, i.e. to see if they are derivable from a common template or function definition. Herein a string matching and replacement algorithm is used to compare two functions. Initially, each expression is converted to a “reduced” form by reference to a set of standard rules so as, for example, to ensure that terms comprising the same variables are combined. The variables names in each term are then replaced with symbols to produce, for each expression, a corresponding character string which, arranged in a predetermined order, are compared to determine equivalence of the expressions. To achieve this, a matrix M is formed with entries corresponding to the symbols and the matrix elements are incremented according to pre-set rules. The matrix is then processed to identify equivalence.
Abstract:
A method and apparatus is described for the checking of the correctness and consistency of units and dimensions of variables and constants used in expressions, such as those used in computer programs. The present invention relates to a method (200) and apparatus (100) for performing such checking. A set of user-supplied precompiler directives is added to the computer program that is to be checked. Broadly, functions, function parameters, constants and variables are replaced with strings from the precompiler directives. The resulting expressions are reduced into a standard form. The expressions in the reduced form are tested for homogeneity according to a set of predetermined conditions.
Abstract:
A method of processing allocation and deallocation requests in a computing environment. The method forms an Allocation Queue of requests for resource allocations, a Deallocation Queue of requests for resource deallocations, a Pending Queue of requests for resource allocation which cannot be met immediately, and a Cancel Queue of requests to cancel an earlier request already waiting in either the Pending Queue or the Allocation Queue. A cycle of servicing the Allocation Queue, the Deallocation Queue, the Pending Queue, and the Cancel Queue in a chronological sequence is carried out. In the cycle: the Deallocation Queue is serviced first, the Cancel Queue is serviced after the Deallocation Queue is serviced until the Cancel Queue is empty, the Pending Queue is serviced after the Cancel Queue is serviced, and the Allocation Queue Queue is serviced after the Pending Queue is serviced.
Abstract:
A first representation of an electrical network includes a first set of simultaneous linear algebraic equations (SLAE's). A second representation of an electrical network includes a second set of SLAE's. The equations of the SLAE's include a number of unknowns and have coefficients for the respective unknowns. A number of the coefficients are expressed in algebraic form. The coefficients of one such equation from one of the sets of SLAE's are for respective elements of the set's respective electrical network and the unknowns are for respective operating properties of the set's respective electrical network. Results are derived in pairs for each unknown of each respective one of the SLAE's. The pairs of results are compared in a specified manner to determine a network equivalence. The results are derived from the SLAE's and expressed in algebraic form, so that the comparing of the pairs of results includes comparing algebraic expressions.
Abstract:
Grouping blocks of text according to user-defined contexts, and editing group specific blocks can be used to improve document consistency during editing and revising of electronic documents. A change made in one block often requires appropriate changes to be made in other blocks that are contextually related to the changed block. Such changes are made to ensure this consistency. Commands that deal with block groups (such as, create group, add block to group(s), delete block from group(s), edit group, merge group, etc.) are provided to assist a user in editing documents.
Abstract:
A method, system and computer program product for enabling the concurrent editing of a document containing a plurality of independent or loosely connected segments by multiple authors is described. Among other things, the invention allows assigning of editing rights for each segment to a defined set of segment authors, making available a special segment that contains metadata shared by all the segments of said documents, and providing email means private to said document, for facilitating communication between the authors of the document.
Abstract:
The present invention discloses a method for determining, in a computer environment, the equivalence, if any, of two blocks of assignment statements in a computer program for use in compiler optimization of source code, program verification, program proving, and like computing tasks. The method, inter alia, successfully eliminates, from a block of assignment statements, all intermediate variables and statements which are identities and also those which are irrelevant to the computation of the output variables and brings the block to a form suitable for comparing two or more blocks of assignment statements. A system for carrying out the above method and a computer program product incorporating the method are also disclosed.
Abstract:
A method 100, an apparatus, and a computer program product for constructing a runtime symbol table SymTbl[ ] for a computer program are disclosed. In the method, a symbol table SymTbl[ ] for storing one or more entities Ei is initialized 110. One or more tickets Ti are then added 120 into the symbol table SymTbl[ ] for each entity Ei that does not already exist in the symbol table SymTbl[ ]. An offset address is then inserted 130 after a predefined token “>” for each ticket Vi in a predefined set V of tickets in the symbol table SymTbl[ ] characterized as a sequence of the tickets Vi. One or more preassigned addresses are also inserted 140 in the symbol table SymTbl[ ] for each ticket Vi in the set V of tickets that has preassigned addresses.