Method for determining a value of an integer scaling in a linking of input sets to output sets, and computer program product

11226789 · 2022-01-18

Assignee

Inventors

Cpc classification

International classification

Abstract

The invention relates to a method for determining a value of an integer scaling in a linking of input sets to output sets, wherein the linking comprises operators, each of which has operator inputs and operator outputs that are at least partially linked to one another or to the input sets or to the output sets, by using a computer device having a processing unit, a memory unit, and an output unit. Representations of set objects are used to efficiently carry out rescaling operations within the linking, with up to infinitely large resolution sets. This procedure makes it possible to calculate resource-conserving integer scalings for a target system while taking secondary conditions into account.

Claims

1. A method for determining a value of an integer scaling in a linking of input sets to output sets, wherein the linking comprises operators, each of which has operator inputs and operator outputs that are at least partially linked to one another or to the input sets or to the output sets, wherein a computer device has a processing unit, a memory unit, and an output unit is used, and wherein a representation of the effect of each of the operators on a particular integer scaling of its operator inputs is provided for generating the particular integer scaling of its operator outputs, wherein the method comprises: storing in the memory unit, for each input set, each operator input, each operator output, and each output set, an initial representation of a set of all allowed integer scalings and a representation of a rescaling of an integer scaling to a set of all integer scalings, wherein the initial representation of the set of all allowed integer scalings and the representation of the rescaling of the integer scaling to the set of all integer scalings are achievable by allowable transformations, propagating forward the initial representations of the input sets through the linking, so that, for each operator input, for each operator output, and for each output set, a representation of a set of all possible integer scalings is generated in the processing unit, wherein, according to one or more connections in the linking, and consistent with the initial representations for each translation of an input set to an operator input, the representation of the rescaling is applied, for each translation of an operator output to an operator input or to an output set, the representation of the rescaling is applied, and for each operator, the representation of its effect is applied, and specifying one element from one of the generated sets as the value of the integer scaling, based on a selection that is made in an automated manner in the processing unit, and outputting the specified value in the output unit.

2. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 1, wherein the step of propagating forward comprises intersecting each representation obtained in one of the translations at an operator input with the representation at this operator input, intersecting each representation obtained by operator application at an operator output with the representation at this operator output, and intersecting each representation obtained for an output set with the representation of this output set.

3. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 1 wherein the representations are based on prime factor sets having a finite number or an infinite number of prime factor combinations.

4. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 3, wherein the representations are composed of union sets of sets of quotients from elements of prime factor sets.

5. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 1, further comprising: after the forward propagation and prior to the determination of an element, propagating the generated representations of the output sets backward through the linking, so that for each operator input, for each operator output, and for each input set, a representation of the set of all possible integer scalings is generated in the processing unit, wherein according to the one or more connections in the linking, and consistent with the representations obtained in the forward propagation, for each translation of an output set to an operator output, the representation of the inverse rescaling is applied, and for each translation of an operator input to an operator output or to an input set, the representation of the inverse rescaling is applied, and for each operator, the representation of its inverse effect is applied.

6. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 5, further comprising: comparing the representations generated by forward propagation to the representations generated by backward propagation, and further forward propagating if a backward propagation most recently took place, or a further backward propagating if a forward propagation most recently took place, until the representations generated by the most recent forward propagation no longer differ from the representations generated by the most recent backward propagation.

7. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 1, further comprising: after the one element is specified from one of the generated sets, projecting the generated representation of the set onto the representation of the element, based on the other generated representations and the representation of the element, carrying out at least one new propagation, and fixing a further element from one of the other sets that is generated after this new propagation as the value of the integer scaling at another location in the linking, based on a selection that is made in an automated manner in the processing unit, and outputting the fixed further value in the output unit.

8. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 1, wherein the selection that is made in an automated manner in the processing unit comprises: assessing the elements of the generated set of the integer scalings with a cost function, and determining the element to be selected based on its associated costs.

9. The method for determining a value of an integer scaling in a linking of input sets to output sets according to claim 1, further comprising: selecting allowable transformations from a set of possible transformations before the representation of the rescaling of an integer scaling is created or selected for the set of all integer scalings, and storing the selected allowable transformations in the memory.

10. A non-transitory computer readable medium comprising a computer program product that may be loaded directly into the internal memory of a computer, comprising: software code sections with which a method according to claim 1 is carried out when the computer program product runs on the computer.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Further advantages and advantageous embodiments and refinements of the invention are set forth based on the following description, with reference to the figures, which show the following:

(2) FIG. 1 shows an example of forward transformation of a QSet object,

(3) FIG. 2 shows an example of linking, and

(4) FIG. 3 shows a flow chart of one particularly advantageous embodiment of the method according to the invention.

DETAILED DESCRIPTION OF THE INVENTION

(5) Before describing one particularly advantageous embodiment of the method according to the invention, with reference to the figures and with the aid of one specific linking example, in order to form the basis, domain-specific set objects are first described whose representations are used according to the invention in the scaling method.

(6) Firstly, the abstract set objects that are directed to the “integer scaling” problem domain, which form the framework of the scaling method, are defined.

(7) A prime factor set object (hereinafter PSet object) maps a set of possible prime factor combinations. A distinction is made between three variants of these set objects. The variants together with their parameters form an abstraction of prime factorizations. A PSet object, depending on its variant, represents either a finite number or an infinite number of prime factor combinations.

(8) The set PSet.sub.C is a finite set that has one element, and that describes a specific prime factor combination and forms a first variant. It is defined by

(9) PSet C ( β ) = PSet C ( a 1 .Math. a n , e 1 .Math. e n ) := { x .Math. x = .Math. i = 1 n a i e i } := { β }

(10) with the prime numbers α.sub.i ∈custom character and the exponents e.sub.l ∈custom character.sub.0. The PSet.sub.C object describes a finite set having one element, the value of this element being base β=Π.sub.i=1.sup.n α.sub.l.sup.e.sup.i with β∈custom character. Since each natural number has a unique prime factorization, the value β∈custom character is sufficient to completely describe the PSet.sub.C object.

(11) Examples of PSet.sub.C sets are presented in the following table:

(12) TABLE-US-00001 PSet.sub.C Set elements PSet.sub.C0(3.sup.1 .Math. 5.sup.1 .Math. 13.sup.1) = PSet.sub.C0(195) { 3.sup.1 .Math. 5.sup.1 .Math. 13.sup.1} PSet.sub.C1(3.sup.1 .Math. 5.sup.3) = PSet.sub.C0(375) { 3.sup.1 .Math. 5.sup.3} PSet.sub.C2(7.sup.2 .Math. 11.sup.1) = PSet.sub.C0(539) {7.sup.2 .Math. 11.sup.1}

(13) A fixed prime factor base combination β is likewise defined for the object PSet.sub.R. The elements of the PSet.sub.R set are formed in each case by taking different factors from an extended set Ψ and multiplying by the base β, resulting in

(14) PSet R ( β , Ψ ) = PSet R ( a 1 .Math. a n , e 1 .Math. e n , b 1 .Math. b m , k 1 , max .Math. k m , max ) := { x .Math. x = .Math. i = 1 n a i e i .Math. .Math. j = 1 m b j k j .Math. k j k j , max } := { x | x = β .Math. ψ .Math. ψ Ψ }

(15) with a.sub.l, b.sub.j ∈custom characterand e.sub.i, k.sub.j∈custom character.sub.0, and for the base β and the extended set Ψ,

(16) Ψ ( b 1 .Math. b m , k 1 , max .Math. k m , max ) := { x | x = .Math. j = 1 m b j k j .Math. k j k j , max } .

(17) The extended set Ψ may be completely described by its maximum value

(18) Ψ ~ = .Math. j = 1 m b j k j , max , Ψ ~
since the prime factor bases b.sub.j ∈custom character as well as the exponents k.sub.j,max ∈custom character.sub.0 may be unambiguously determined by prime factorizaton. Thus, the following applies: PSet.sub.R=f(β,Ψ({tilde over (Ψ)}))=f(β,{tilde over (Ψ)}).

(19) These sets form a second variant with a restrictively expandable base value.

(20) Examples of PSet.sub.R sets are presented in the following table:

(21) TABLE-US-00002 PSet.sub.R Set elements PSet.sub.R0(3.sup.1 .Math. 5.sup.1, 13.sup.2) = PSet.sub.R0(15, 169) { 3.sup.1 .Math. 5.sup.1 .Math. 13.sup.0, 3.sup.1 .Math. 5.sup.1 .Math. 13.sup.1, 3.sup.1 .Math. 5.sup.1 .Math. 13.sup.2} PSet.sub.R1(3.sup.1 .Math. 5.sup.1, 2.sup.1 .Math. 3.sup.1) = PSet.sub.R1(15, 6) { 3.sup.1 .Math. 5.sup.1 .Math. 2.sup.0 .Math. 3.sup.0, 3.sup.1 .Math. 5.sup.1 .Math. 2.sup.0 .Math. 3.sup.1, 3.sup.1 .Math. 5.sup.1 .Math. 2.sup.1 .Math. 3.sup.0, 3.sup.1 .Math. 5.sup.1 .Math. 2.sup.1 .Math. 3.sup.1} PSet.sub.R2(1.sup.1, 7.sup.2 .Math. 11.sup.1) = PSet.sub.R2(1, 539) {7.sup.0 .Math. 11.sup.0, 7.sup.0 .Math. 11.sup.1, 7.sup.1 .Math. 11.sup.0, 7.sup.1 .Math. 11.sup.1, 7.sup.2 .Math. 11.sup.0, 7.sup.2 .Math. 11.sup.1}

(22) The PSet.sub.U sets are a third variant having a base element with unlimited expandability. A fixed base component β∈custom character is again used for the PSet.sub.U set. The elements of the set result from expanding the base component by an arbitrary number of prime factors.

(23) The PSet.sub.U set is defined as

(24) PSet U ( β ) = PSet U ( a 1 .Math. a n , e 1 .Math. e n ) := { x | x = .Math. i = 1 n a i e i .Math. .Math. j = 1 m b j k j .Math. b j .Math. k j 0 } := { x | x = β .Math. χ .Math. β = .Math. i = 1 n a i e i .Math. χ X }

(25) with the constant base β∈custom character, the prime factors α.sub.i ∈custom character, the positive exponents e.sub.i∈custom character.sub.0, and the infinitely large overall factor set X,

(26) X := { x | x = .Math. j = 1 m b j k j .Math. b j .Math. k j 0 } .

(27) The overall factor set X maps all existing combinations of prime factors having positive exponents. It is not specific for the particular PSet.sub.U object, and therefore is not a parameter.

(28) Examples of PSet.sub.U sets are illustrated in the following table:

(29) TABLE-US-00003 PSet.sub.U Set elements PSet.sub.U0(1.sup.1) = PSet.sub.U0(1) {1.sup.1, 2.sup.1, 3.sup.1, 2.sup.2, 5.sup.1, 2.sup.2 .Math. 3.sup.1, 7.sup.1, . . .} PSet.sub.U1(3.sup.1) = PSet.sub.U1(3) { 3.sup.1, 2.sup.1 .Math. 3.sup.1, 3.sup.2, 2.sup.2 .Math. 3.sup.1, 3.sup.1 .Math. 5.sup.1, . . .} PSet.sub.U2(3.sup.1 .Math. 5.sup.1) = { 3.sup.1 .Math. 5.sup.1, 2.sup.1 .Math. 3.sup.1 .Math. 5.sup.1, 3.sup.2 .Math. 5.sup.1, 2.sup.2 .Math. 3.sup.1 .Math. 5.sup.1, . . .} PSet.sub.U2(15)

(30) The described variants of a PSet object, together with the variant-based parameters, form an abstraction of prime factor combinations having positive exponents. Each PSet set may be completely characterized via its variant and the associated parameters in the form of natural numbers (β, {tilde over (Ψ)} in the case of PSet.sub.R, and β in the case of PSet.sub.C, PSet.sub.U).

(31) Various operations, in particular intersection and multiplication operations, are possible on the PSet sets. Each of these operations gives a result of either exactly one PSet set object or an empty set. The operations in question are defined below. They form the basis for subsequently generating abstract resolution sets from PSet objects.

(32) An operation PSet.sub.0.Math.1=PSet.sub.0.Math.PSet.sub.1 which calculates the product of any two given PSet set objects is defined as a PSet product. The result set contains the products of each element of the set PSet.sub.0 and each element of the set PSet.sub.1. The definitions of the PSet product for the various variants are provided in the following table:

(33) TABLE-US-00004 Result matrix product PSet.sub.C1 PSet.sub.R1 PSet.sub.U1 PSet.sub.C0 PSet.sub.C(β.sub.0 .Math. β.sub.1) PSet.sub.R(β.sub.0 .Math. β.sub.1, {tilde over (Ψ)}.sub.1) PSet.sub.U(β.sub.0 .Math. β.sub.1) PSet.sub.R0 PSet.sub.R(β.sub.0 .Math. β.sub.1, {tilde over (Ψ)}.sub.0) PSet.sub.R(β.sub.0 .Math. β.sub.1, {tilde over (Ψ)}.sub.0 .Math. {tilde over (Ψ)}.sub.1) PSet.sub.U(β.sub.0 .Math. β.sub.1) PSet.sub.U0 PSet.sub.U(β.sub.0 .Math. β.sub.1) PSet.sub.U(β.sub.0 .Math. β.sub.1) PSet.sub.U(β.sub.0 .Math. β.sub.1)

(34) An operation PSet.sub.0∩1=PSet.sub.0∩PSet.sub.1 that forms the intersecting set of any two given PSet set objects is defined as a PSet intersecting set. The result of the operation is either a PSet object or an empty set { }. The definitions of the PSet intersecting set for the various variants are provided in the following table:

(35) TABLE-US-00005 Result matrix intersection PSet.sub.C1 PSet.sub.C0 { PSet C ( β 0 ) , β 0 = β 1 { } , otherwis PSet.sub.R0 { PSet C ( β 1 ) , [ β 0 .Math. ~ β 1 ] .Math. [ β 1 .Math. ~ ( β 0 .Math. Ψ ~ 0 ) ] { } , otherwis PSet.sub.U0 { PSet C ( β 1 ) , β 0 .Math. ~ β 1 { } , otherwis Result matrix intersection PSet.sub.R1 PSet.sub.C0 0 { PSet C ( β 0 ) , [ β 1 .Math. ~ β 0 ] .Math. [ β 0 .Math. ~ ( β 1 .Math. Ψ ~ 1 ) ] { } , otherwis PSet.sub.R0 { PSet R ( β 0 .Math. ~ β 1 , α β 0 .Math. ~ β 1 ) , [ β 0 .Math. ~ α ] .Math. [ β 1 .Math. ~ α ] { } , otherwis where α := (β.sub.0 .Math. {tilde over (Ψ)}.sub.0) {tilde over (∩)} (β.sub.1 .Math. {tilde over (Ψ)}.sub.1) PSet.sub.U0 { PSet R ( β 0 .Math. ~ β 1 , α β 0 .Math. ~ β 1 ) , β 0 .Math. ~ α { } , otherwis where α := β.sub.1 .Math. {tilde over (Ψ)}.sub.1 Result matrix intersection PSet.sub.U1 PSet.sub.C0 { PSet C ( β 0 ) , β 1 .Math. ~ β 0 { } , otherwis PSet.sub.R0 { PSet R ( β 0 .Math. ~ β 1 , α β 0 .Math. ~ β 1 ) , β 1 .Math. ~ α { } , otherwis where α := β.sub.0 .Math. {tilde over (Ψ)}.sub.0 PSet.sub.U0 PSet.sub.U (β.sub.0 {tilde over (∪)} β.sub.1)

(36) The operators {tilde over (∪)}, {tilde over (∩)}, and {tilde over (.Math.)} are operations on the prime factorizations of natural numbers. The basis of the definitions are the prime factor combinations of the numbers x.sub.0 and x.sub.1:

(37) x 0 = .Math. i = 1 n a i e i , x 1 = .Math. j = 1 m b j l j
with the prime numbers a.sub.i, b.sub.j ∈custom character and the exponents e.sub.i, f.sub.j∈custom character.sub.0.

(38) The result value of an intersecting set on the prime factor level (x.sub.0{tilde over (∪)}x.sub.1) contains all mutual prime factor bases, in each case with the minimum exponents. The result value of a union set on the prime factor level (x.sub.0{tilde over (∩)}x.sub.1) contains all prime factor bases of x.sub.0 and x.sub.1 with the maximum exponents in each case. For a subset on the prime factor level (x.sub.0{tilde over (.Math.)}x.sub.1), a set x.sub.0 is a subset of x.sub.1 when x.sub.1 contains at least all prime factor bases of the set x.sub.0 and has exponents with an absolute value at least as high.

(39) A resolution set object QSet, QSet object, is a set object that describes a set of rational resolutions by one PSet object each for the numerator PSet.sub.nom and the denominator PSet.sub.den, optionally in an enveloping interval Q.sub.Limit with interval limits Q.sub.min and Q.sub.max. This means that a QSet resolution set thus contains the following information: numerator set object PSet.sub.nom, denominator set object PSet.sub.den, and optionally an enveloping interval Q.sub.Limit=[Q.sub.min, Q.sub.max], where Q.sub.min, Q.sub.max∈custom character.sup.+:

(40) QSet ( PSet nom , PSet den , Q Limits ) := { x + | x = x 0 x 1 .Math. x 0 PSet nom .Math. x 1 PSet den .Math. Q min x Q max }

(41) The elements of the QSet set result from dividing each element of the numerator set by any other given element of the denominator set, provided that the result lies within the optionally specified enveloping interval. Examples of abstract resolution sets (simplified presentation in rational form, and in the present case, without an enveloping interval) are provided in the following table:

(42) TABLE-US-00006 QSet Set elements QSet 1 = PSet C ( 5 1 ) PSet C ( 2 1 ) {2.sup.-1 .Math. 5.sup.1} QSet 2 = PSet R ( 5 1 , 2 2 ) PSet C ( 1 1 ) {5.sup.1, 5.sup.1 .Math. 2.sup.1, 5.sup.1 .Math. 2.sup.2} QSet 3 = PSet R ( 5 1 , 2 2 ) PSet R ( 3 1 , 2 1 ) {2.sup.-1 .Math. 3.sup.-1 .Math. 5.sup.1, 2.sup.6 .Math. 3.sup.-1 .Math. 5.sup.1, 2.sup.1 .Math. 3.sup.-1 .Math. 5.sup.1, 2.sup.2 .Math. 3.sup.-1 .Math. 5.sup.1} 0 QSet 4 = PSet U ( 5 1 ) PSet C ( 1 1 ) {5.sup.1, 2.sup.1 .Math. 5.sup.1, 3.sup.1 .Math. 5.sup.1, 2.sup.2 .Math. 5.sup.1, 5.sup.2, 2.sup.1 .Math. 3.sup.1 .Math. 5.sup.1, . . . }

(43) Operations on QSet objects are carried out based on the “product” and “intersecting set” operations defined for PSet objects. The QSet inversion operation QSet brings about the inversion of all elements (resolutions) of the input set. The numerator PSet.sub.nom and the denominator PSet.sub.den of the set to be inverted are exchanged to form the result. The rational limits of the enveloping interval Q.sub.Limit are inverted by reversal. The operation QSet product QSet.sub.1.Math.QSet.sub.2 gives a result QSet object, which in its set representation contains all products of element combinations of the set QSet.sub.1 with those of the set QSet.sub.2. The numerator PSet objects of the operands Q.sub.Set,1 and Q.sub.Set,2 are multiplied by the PSet product operation in order to calculate the numerator object of the result. An analogous procedure is followed for the denominator PSet objects. A corresponding multiplication based on interval arithmetic is carried out for the enveloping interval. The operation division QSet.sub.1/QSet.sub.2 maps the division of all elements (resolutions) of QSet.sub.1 with those of the set QSet.sub.2. The division is carried out using the inversion and product operations:

(44) QSet 1 QSet 2 := QSet 1 .Math. QSet 2 _

(45) The enveloping interval is divided using interval arithmetic.

(46) The intersecting set operation QSet.sub.1∩QSet.sub.2 calculates the intersecting set of two input sets. The result object is calculated from the intersecting set of the two numerator PSet objects for determining the result numerator, and of the two denominator PSet objects for determining the result denominator. The enveloping interval of the result is obtained from the intersection of the input enveloping intervals. If the resulting numerator or denominator term represents an empty set, the intersection result is likewise an empty set. The prerequisite for correct results is a preceding normalization of the numerator and denominator PSet objects, in which mutually shortenable components of the bases β are determined, and are in each case converted into a variable component for both objects. A result set is an empty set when it contains no element in the enveloping interval Q.sub.Limit.

(47) In an integer-scaled model, adaptations of signal resolutions are necessary at certain points in order to satisfy the mathematical relationships of fixed-point arithmetic and to conform to maximum bit widths of the target platform. This procedure is referred to as rescaling. With reference to the set algebra described herein, transformations of QSet objects are to be carried out.

(48) It is assumed that within the scope of the integer scaling of a linking, each integer signal S has an associated resolution q.sub.s∈custom character.sup.+, and the physical signal value p.sub.s∈custom character can be calculated from the integer signal value i.sub.s ∈custom character of the integer signal, using the rule p.sub.s=q.sub.s.Math.i.sub.s, that signal rescalings R(S.sub.1, S.sub.2)=R(q.sub.s1, q.sub.s2)=q.sub.s1/q.sub.s2, with R∈custom character.sup.+, on the target platform result in an expenditure of technical resources that is a direct function of the characteristics of the rational factor R, and that rescalings are to be carried out on the target platform without approximations of the factor R.

(49) Forward transformations VT.sub.i are defined for a given target platform. For an input object QSet.sub.0, each transformation VT.sub.i gives an associated output object QSet.sub.i: QSet.sub.1=VT.sub.i(QSet.sub.0). The output object QSet.sub.i includes all resolutions after transformation of the input resolutions using the rescaling strategy defined by VT.sub.i. The strategy of a forward transformation VT.sub.i maps properties of the factor R, and thus creates defined resource requirements on the target platform.

(50) TABLE-US-00007 Rescaling Forward transformation VT.sub.i(QSet.sub.0) .fwdarw. QSet.sub.i ID No rescaling VT.sub.ID(QSet.sub.0) := QSet.sub.0 LS Left shift in VT.sub.LS(QSet.sub.0) := QSet.sub.0 .Math. code QSet(PSet.sub.C(1), PSet.sub.R(1, 2.sup.16), Q.sub.Limits) RS Right shift in VT.sub.RS(QSet.sub.0) := QSet.sub.0 .Math. code QSet(PSet.sub.R(1), PSet.sub.C(1, 2.sup.16), Q.sub.Limits) MUL Multiplcation in VT.sub.MUL(QSet.sub.0) := QSet.sub.0 .Math. code QSet(PSet.sub.C(1), PSet.sub.U(1), Q.sub.Limits) DIV Division in VT.sub.DIV(QSet.sub.0) := QSet.sub.0 .Math. code QSet(PSet.sub.U(1), PSet.sub.C(1), Q.sub.Limits) MUL_RS Multiplication VT.sub.MUL_RS(QSet.sub.0) := VT.sub.RS(VT.sub.MUL(QSet.sub.0)) with subsequent right shift in code MUL_DV Multiplication VT.sub.MUL_DIV(QSet.sub.0) := VT.sub.DIV(VT.sub.MUL(QSet.sub.0)) with subsequent division shift in code

(51) As an example, shift operations with up to 16 bit positions are made possible. The enveloping interval Q.sub.Limit allows the size of the rescaling factor R to be limited. The transformation set VT={VT.sub.0, VT.sub.1, . . . , VT.sub.n} includes all allowed transformations (rescalings) for the integer scaling. An example of forward transformations of a QSet object with VT={VT.sub.ID, VT.sub.LS, VT.sub.MUL, VT.sub.DIV} is illustrated in FIG. 1.

(52) A forward transformation, starting from an input resolution set, determines the target resolutions for a defined rescaling rule, for example a right shift, whereas the backward transformation VT.sub.i.sup.−1 determines the step that is the inverse thereof. For a resolution target set QSet.sub.0, a determination is made as to which initial resolution set could have resulted in this target set, taking into account the associated forward transformation VT.sub.i. For each forward transformation VT.sub.i, a corresponding backward transformation VT.sub.i.sup.−1 must be defined.

(53) The resolution set Q maps the combination of all resolutions, which is represented by a set of QSet objects:

(54) Q ( QSet 0 , QSet 1 , .Math. , QSet n ) := .Math. i = 0 n QSet i

(55) A resolution set is completely defined by the set of its associated QSet objects.

(56) The operations defined for QSet objects may be carried out on a resolution set Q by performing the particular operation element by element on the underlying QSet objects for Q. The resulting set of the result QSet objects forms a new resolution set Q.

(57) For example, this means that an intersecting set formation of resolution sets Q.sub.A∩B=Q.sub.A ∩Q.sub.B takes place via the intersection of all combinations of QSet objects composed of Q.sub.A with the QSet objects composed of Q.sub.B.

(58) In addition, a union set Q.sub.0=Q.sub.1 ∪Q.sub.2 is defined. The result set Q.sub.0 in its abstract representation contains all QSet elements of the set Q.sub.1 and all QSet elements of the set Q.sub.2.

(59) The explanation of definitions of sets and operations underlying the preferred embodiment is now followed by a description of the stated embodiment of the integer scaling method according to the invention, which carries out a calculation of signal resolutions for a given linking. Reference is made to an example of a linking which is not restricting or limiting, but, rather, is merely illustrative for better understanding.

(60) The components of linkings are explained with the aid of the linking by way of example with variables D shown in FIG. 2. Each operator has input-side and output-side pins. One resolution q.sub.i is associated with each pin P.sub.i of a scaled model. A rescaling takes place when the resolution q.sub.1 at the start of an edge differs from the resolution q.sub.2 at the end of an edge.

(61) Secondary conditions of the fixed-point arithmetic which must be satisfied apply for the resolutions of an integer-scaled model, so that the scaled model calculates physically correct results. Several examples of secondary conditions are presented in the following table:

(62) TABLE-US-00008 Operator Secondary conditions Addition All pins of the operator have the same resolution Subtraction All pins of the operator have the same resolution Multiplication The output-side resolution corresponds to the product of the input-side resolutions Division The output-side resolution corresponds to the numerator resolution divided by the denominator resolution

(63) The aim of the particularly preferred embodiment of the method for integer scaling is to determine a resolution at each pin of the linking. The following criteria are taken into account: At each pin, the resolution is neither above nor below the specified resolution limits. Resolution limits may be used to specify minimum accuracies and maximum bit widths that must be adhered to in order to avoid integer overflows. The secondary conditions of the fixed-point arithmetic are satisfied in order for the integer-scaled model to calculate physically correct result values. The number and characteristics of rescalings are optimized based on a cost function in order to minimize the resource requirements of the model on the target platform. The final determined resolution on a pin must be an element of an initial resolution set of this pin. Initial sets may be used to fix unchangeable model portions or to control the characteristics of solutions.

(64) In the particularly preferred embodiment of the method according to the invention for integer scaling described here, the above-defined set objects are used for efficiently depicting rescalings in representations, using finitely large and infinitely large resolution sets. FIG. 3 illustrates a flow chart of the stated embodiment.

(65) After the start 10, during the initialization 12 an initial resolution set Q.sub.i (QSet.sub.0, QSet.sub.1, . . . , QSet.sub.n) is assigned to each pin P.sub.i. The initial resolution set Q.sub.i fixes the solution space and the primary factor characteristic of a potential solution on the pin P.sub.i. A pin whose resolution is to be unchangeable is initialized with a fixed resolution, i.e., with a QSet element comprising a PSet.sub.C numerator and a PSet.sub.C denominator. A pin whose resolution is allowed to be arbitrary is initialized with a QSet element comprising a PSet.sub.U (1) numerator and a PSet.sub.U (1) denominator. Other limiting initial sets are possible if necessary.

(66) The resolution limits of the solution space are determined in advance by use of a suitable method, for example to ensure adherence to maximum signal bit widths or to achieve physical minimum accuracies of the integer scaling.

(67) The specific linking shown in FIG. 2 is used as an illustrative example. The following exemplary secondary conditions are present in this example: The resolution of pin 1 is fixed at the value 2 and cannot be changed. The resolution of pin 9 is fixed at the value 1 and cannot be changed. The method is intended to calculate a resolution for pin 0 and pins 2-8. The solution for pin 0 should be a resolution for the prime factor base 2. Only rescalings of the “right shift” type are to be allowed.

(68) The following QSet symbols are defined for a simplified representation:
QSet.sub.0.5:=QSet(PSet.sub.C(1.sup.1),PSet.sub.C(2.sup.1))
QSet.sub.1:=QSet(PSet.sub.C(1.sup.1),PSet.sub.C(1.sup.1))
QSet.sub.2:=QSet(PSet.sub.C(2.sup.1),PSet.sub.C(1.sup.1))
QSet.sub.0.5.Math.2.sub.−x:=QSet(PSet.sub.C(1.sup.1),PSet.sub.R(2.sup.1,2.sup.15))
QSet.sub.2.sub.−x:=QSet(PSet.sub.C(1.sup.1),PSet.sub.R(1.sup.1,2.sup.16))
QSet.sub.2.Math.2.sub.+x:=QSet(PSet.sub.R(2.sup.1,2.sup.15),PSet.sub.C(1.sup.1))
QSet.sub.2.sub.±x:=QSet(PSet.sub.R(1.sup.1,2.sup.16),PSet.sub.C(1.sup.1,2.sup.16))
QSet.sub.x:=QSet(PSet.sub.U(1.sup.1),PSet.sub.U(1.sup.1))

(69) To simplify the representation, enveloping intervals are not considered: it is assumed that all resolutions are always to be limited to the enveloping interval [2.sup.−16 . . . 2.sup.+16]. In this example, the set of allowed forward transformations should be VT:={VT.sub.ID, VT.sub.RS}.

(70) In the application of the particularly preferred embodiment of the method according to the invention to the specific linking in FIG. 2, in the initialization 12 phase an initial resolution set Q.sub.i is assigned to each pin P.sub.i, based on the following secondary conditions:

(71) TABLE-US-00009 Pin # (i) Initial resolution sets 0 Q.sub.i(QSet.sub.2.sub.±x) 1 Q.sub.i(QSet.sub.2) 2-8 Q.sub.i(QSet.sub.x) 9 Qi(QSet.sub.1)

(72) In the forward propagation 14 phase, the resolution sets are propagated step by step along an edge A from the inputs to the outputs by forward transformations and set intersection operations. From the resolution set Q.sub.A, at the start of an edge a result resolution set Q.sub.B′ is calculated at the end of an edge, using forward transformation VT={VT.sub.0, . . . , VT.sub.n}. The resolution set Q.sub.B′ is intersected with the existing resolution set based on initialization or a preceding calculation, giving the following:

(73) Q B := Q B .Math. Q B = Q B .Math. ( .Math. i = 0 n VT i ( Q A ) )

(74) The forward propagation 14 at an operator calculates from its input resolution sets the output resolution set. The output resolution set is calculated on an operator-specific basis in order to satisfy secondary conditions of the fixed-point arithmetic. The resolution set calculated for the operator output is intersected by the existing resolution set Q.sub.i at this output pin P.sub.i.

(75) The terms P.sub.A0, . . . , P.sub.Am for the input pins of the operator and the term P.sub.B for the output pin of the operator result in the calculation rules provided in the following table:

(76) TABLE-US-00010 Operator Calculation rule Addition/subtraction/ Q.sub.B := Q.sub.B ∩ (∩.sub.i=0.sup.m Q.sub.Ai)| operators with identical pin resolutions Multiplication Q.sub.B := Q.sub.B ∩ (∩.sub.i=0.sup.m Q.sub.Ai)| Division Q.sub.B := Q.sub.B ∩ (Q.sub.A0/Q.sub.A1) with the numerator pin P.sub.A0 and the denominator pin P.sub.A1

(77) For the linking shown by way of example in FIG. 2, a complete phase of the forward propagation 14 is carried out with the forward transformation set VT={VT.sub.ID,VT.sub.RS}. The results of the individual calculation steps are provided in the following table:

(78) TABLE-US-00011 Pin # Propagation step Result 1. 3 Propagation, edge 0-3 Q.sub.3 := Q.sub.3 ∩ (VT.sub.ID(Q.sub.0) ∪ VT.sub.RS(Q.sub.0)) = Q(QSet.sub.2.sub.±x)| 2. 4 Propagation, edge 1-4 Q.sub.4 := Q.sub.4 ∩ (VT.sub.ID(Q.sub.1) ∪ VT.sub.RS(Q.sub.1)) = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.±x) 3. 5 Propagation, addition Q.sub.5 := Q.sub.5 ∩ Q.sub.3 ∩ Q.sub.4 ∩ Q.sub.5 ∩ Q(QSet.sub.2, QSet.sub.2.Math.2.sub.±x) operator 4. 6 Propagation, edge 5-6 Q.sub.6 := Q.sub.6 ∩ (VT.sub.ID(Q.sub.5) ∪ VT.sub.RS(Q.sub.5)) = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.±x) 5. 7 Propagation, edge 2-7 Q.sub.7 := Q.sub.7 ∩ (VT.sub.ID(Q.sub.2) ∪ VT.sub.RS(Q.sub.2)) = Q(QSet.sub.x) 6. 8 Propagation, Q.sub.8 := Q.sub.8 ∩ (Q.sub.6 .Math. Q.sub.7) = Q(QSet.sub.x) multiplication operator 7. 9 Propagation, edge 8-9 Q.sub.9 := Q.sub.9 ∩ (VT.sub.ID(Q.sub.8) ∪ VT.sub.RS(Q.sub.8)) = Q(QSet.sub.1)

(79) If an empty resolution set (Q.sub.i={ }) exists for a given pin P.sub.i of the linking, the embodiment of the method according to the invention immediately terminates, without a result.

(80) The step of backward propagation 16 is carried out analogously to the forward propagation 14, in reverse order and with application of the inverse forward transformations VT.sub.i.sup.−1. Based on the resolution set Q.sub.B at the end of an edge, a resolution set Q.sub.A′ at the start of an edge is calculated along an edge by means of inverse forward transformation VT.sup.−1={VT.sub.0.sup.−1, . . . , VT.sub.n.sup.−1}. The resolution set Q.sub.A′ is intersected by the existing resolution set Q.sub.A.

(81) Q A := Q A .Math. Q A = Q A .Math. ( .Math. i = 0 n VT i - 1 ( Q B ) )

(82) A backward propagation is carried out for each input of the operator. The terms P.sub.A0, . . . , P.sub.Am for the input pins of the operator and the term P.sub.B for the output pin of the operator result in the calculation rules provided in the following table:

(83) TABLE-US-00012 Operator Calculation rule for input P.sub.Ai Addition/substrac- Q.sub.Ai := Q.sub.Ai ∩ Q.sub.B tion/operators with identical pin resolutions Multiplication Q.sub.Ai := Q.sub.Ai ∩ (Q.sub.B/Π.sub.0≤j≤m .sub.∀ .sub.j≠iQ.sub.Aj) Division Q.sub.A0 := Q.sub.A0 ∩ (Q.sub.A1 .Math. Q.sub.B)| with the numerator pin P.sub.A0 Q.sub.A1 := Q.sub.A1 ∩ (Q.sub.A0/Q.sub.B) with the denominator pin P.sub.A1

(84) For the linking shown by way of example in FIG. 2, a complete phase of the backward propagation 16 is carried out as an example. The results of the individual calculation steps are provided in the following table:

(85) TABLE-US-00013 Pin # Propagation step Result 1. 8 Propagation, edge 8-9 Q.sub.8 := Q.sub.8 ∩ (VT.sub.ID.sup.−1(Q.sub.9) ∪ VT.sub.RS.sup.−1(Q.sub.9)) = Q(QSet.sub.1, QSet.sub.2.sub.−x) 2. 7 Propagation, Q.sub.7 := Q.sub.7 ∩ (Q.sub.8/Q.sub.6) = Q(QSet.sub.0.5, QSet.sub.0.5.Math.2.sub.−x) multiplication operator 3. 6 Propagation, Q.sub.6 := Q.sub.6 ∩ (Q.sub.8/Q.sub.7) = Q(QSet.sub.0.5, QSet.sub.2.Math.2.sub.+x) multiplication operator 4. 5 Propagation, edge 5-6 Q.sub.5 := Q.sub.5 ∩ (VT.sub.ID.sup.−1(Q.sub.6) ∪ VT.sub.RS.sup.−1(Q.sub.6)) = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) 5. 4 Propagation, addition Q.sub.4 := Q.sub.4 ∩ Q.sub.5 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) operator 6. 3 Propagation, addition Q.sub.3 := Q.sub.3 ∩ Q.sub.5 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) operator 7. 2 Propagation, edge 2-7 Q.sub.2 := Q.sub.2 ∩ (VT.sub.ID.sup.−1(Q.sub.7) ∪ VT.sub.RS.sup.−1(Q.sub.7)) = Q(QSet.sub.0.5, QSet.sub.0.5.Math.2.sub.−x) 8. 1 Propagation, edge 1-4 Q.sub.1 := Q.sub.1 ∩ (VT.sub.ID.sup.−1(Q.sub.4) ∪ VT.sub.RS.sup.−1(Q.sub.4)) = Q(QSet.sub.2)| 9. 0 Propagation, edge 0-3 Q.sub.0 := Q.sub.0 ∩ (VT.sub.ID.sup.−1(Q.sub.3) ∪ VT.sub.RS.sup.−1(Q.sub.3)) = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x)|

(86) Analogously to the forward propagation, the algorithm terminates without a solution if an empty resolution set (Q.sub.i={ }) exists for a given pin P; of the model.

(87) This is followed by a stability decision 18: a check is made as to whether the result is stable. The result is stable if, after a cycle comprising forward and backward propagation, the elements of the resolution sets do not differ from the immediately preceding cycle. If this is the case, the first “yes” decision 20 involves a step of solution selection 22. In this step, for an unsolved pin P.sub.i a final solution is determined in the linking. A pin P.sub.i is unsolved when its assigned resolution set Q.sub.i contains at least two resolutions. From the set of unsolved pins in the model, the pin P.sub.i to be solved must first be determined. The selection may be made arbitrarily or in favor of a deterministic integer scaling, using a suitable selection strategy, such as a cost analysis of the required transformations. If it is determined in the stability decision 18 that the result is not yet stable (first “no” decision 24), forward propagation 14 and backward propagation are carried out anew (iteration).

(88) In the step of solution selection 22, for the selected pin P.sub.i a final resolution is determined from its resolution set Q.sub.i. In the preferred embodiment according to FIG. 3, the specific procedure for selection of a resolution from Q.sub.i encompasses specifying the transformation costs C.sub.x for each transformation VT.sub.x. The costs may be used to place the focus on run time efficiency (computer-intensive rescalings entail high costs) or memory efficiency (memory-intensive rescalings entail high costs). An iteration is made over all QSetobjects of the resolution set Q.sub.i (QSet.sub.0, . . . , QSet.sub.n). The costs of all transformations in the model that are necessary at least for the existence of the QSet element under consideration are determined. The QSet object QSet* with the lowest costs is selected. A resolution q*∈QSet* is selected from QSet* and converted into a new resolution set Q.sub.i whose single represented resolution is the selected resolution q*.

(89) A consideration is subsequently made in a completeness decision 26 as to whether there are further unsolved pins. If further unsolved pins exist in the linking (second “no” decision 30), forward propagation 14 and backward propagation 16 must be carried out anew until stabilization is achieved, before the next pin can be reliably solved. In contrast, if all pins are solved (second “yes” decision 28), the integer scaling is completely terminated and the embodiment of the method reaches the end 32.

(90) For an exemplary illustration with regard to the linking shown in FIG. 2, the unsolved pin P.sub.2 is selected by way of example. The pin P.sub.2 is unsolved, since the resolution set Q.sub.2, due to two contained QSet objects, maps at least two specific resolutions. Cost values for the allowed transformations VT:={VT.sub.ID,VT.sub.RS} are defined as follows:

(91) TABLE-US-00014 Transformation Costs C.sub.x VT.sub.ID 0 VT.sub.RS 1

(92) The starting points are the results of the preceding phases of the propagation for the linking in FIG. 2:

(93) TABLE-US-00015 Pin # Result, resolution set 0 Q.sub.0 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) 1 Q.sub.1 = Q(QSet.sub.2) 2 Q.sub.2 = Q(QSet.sub.0.5, QSet.sub.2.Math.2.sub.−x) 3 Q.sub.3 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) 4 Q.sub.4 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) 5 Q.sub.5 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) 6 Q.sub.6 = Q(QSet.sub.2, QSet.sub.2.Math.2.sub.+x) 7 Q.sub.7 = Q(QSet.sub.1, QSet.sub.0.5.Math.2.sub.−x) 8 Q.sub.0 = Q(QSet.sub.1, QSet.sub.2.sub.−x) 9 Q.sub.9 = Q(QSet.sub.1)

(94) The costs of an object QSet.sub.j at a pin may be determined over the totality of transformations carried out in the linking that have resulted in the existence of this object QSet.sub.j. The specific characteristic of such a cost calculation is not specified by the set algebra used by the scaling method described in the embodiment.

(95) The following expression applies: C.sub.T (P.sub.2, QSet.sub.0.5)=0 Õ. The element QSet.sub.0.5 requires only transformations of type VT.sub.ID for its existence at pin 2. The following expression applies: C.sub.T (P.sub.2, QSet.sub.0.5*2.sub.−x)=1 Õ. The element 0.5.Math.2.sup.−x requires at least one VT.sub.ID transformation in the linking for its existence at pin 2. The element QSet.sub.0.5 is selected. Each represented resolution of this QSet element may be selected without adversely affecting the resources. Since the element already represents a specific resolution (q=0.5), no further selection is necessary. The result is Q.sub.2:=Q.sub.2(QSet.sub.0.5). Since further unsolved pins exist in the linking shown in FIG. 2, a new propagation phase is started with the adapted resolution set Q.sub.2.

LIST OF REFERENCE SYMBOLS

(96) 10 start 12 initialization 14 forward propagation 16 backward propagation 18 stability decision 20 first “yes” decision 22 solution selection 24 first “no” decision 26 completeness decision 28 second “yes” decision 30 second “no” decision 32 end A edge B operator C pin D variable