Updated 2016-04-27 20:32:10 by gold

### Sumerian Equivalency Values and the Law of Proportions with Demo Example Calculator

gold Here is some starter code for calculating Equivalency Values and daily work norms in the Sumerian coefficient lists. The modern mathematical terms for equivalency ratios might be the Law of Proportions or linear interpolation in algebra. The impetus for these calculations was checking Equivalency Values and daily work norms in some administration tablets, excavation reports, and modern replicas. Most of the testcases involve replicas or models, using assumptions and rules of thumb.

The Englund paper discusses the equivalency word formulas. The word formula was N1 Quantity1 Quantity2-bi N2, where usually bi is the relating genitive pronoun (English its). For a marketplace example, the form might be 5 apples units pears-its 3 units, meaning 5 apples will be traded for 3 pears. In Sumeria, prices were usually given in terms of silver pieces or barley grain. Continuing in the marketplace, the price for apples might be quoted as 5 bushels of apples silver-its 1 silver piece or 5 bushels of apples barley-its 10 bushels of grain. Over time, this equivalency system of value was extended to daily work norms or work quotas enforced by strict laws, eg. the daily task of a basket weaver might be written as 3 large straw baskets workday-his 1 day (workday as 12 hours). Many of the formulas were written on successive lines, eg. Line 2 N1 value, Line 3 N2-bi value. Most quantities and objects use the impersonal genitive pronoun (bi) as in equivalencies for price in weight of metal, ki-la2-bi (earth extant it’s, esp, weight of copper). In some cases like prices in silver and taxes, the formula was abbreviated. For example in the tablets, ku3-bi ( it’s silver), se-bi (it’s grain), and se-bala-bi (it’s grain price) are common forms. However in most tablet citations, the Sumerians were writing the equivalency word formulas for 2 known quantities, not necessarily 3 known quantities and solving for an unknown quantity. The math, theory, and the future of solving unknown quantities were off the account books, so to speak. The modern term for equivalency values might be law of proportions, and the equivalency statements in the tablets can be solved and generalized in modern algebraic terms such as N1/N2 = X/N4, X*N2=N1*N4, the unknown X = N1*N4/N2. For moderns, the advantage of equivalency values is insight into the Sumerian economic conditions as well as the history of mathematics.

The Sumerian language seems uniquely adaptable to mathematics. The noun phrases had both prefix and suffix modifiers, including prefix modifiers of position or location. The closest living relative of the Sumerian language seems to be Latvian, which also has prefix modifiers of position. There are also prefix determinatives in the cuneiform written words, which may have been unspoken in some cases and spoken in other cases. The prefix determinatives are used to clarify the subject. For example, objects made of wood such as a ship might have the word ges (wood) precede the main phrase. The cuneiform word for ship is ges-ma-ses-gur (wood ship carries 60 volume gurs). For another example, mats (gi kid) made of reeds would be proceeded by the determinative gi (reed). Possibly, the Equivalency Values were a development of Sumerian nouns carrying both prefix and postfix modifiers and were ingrained into the language.
Summary of Modern proportion rules confirmed date,pub books, authors if known comment
if a/b=c/d 450 CE Aryabhata found in Sanskrit Mathematics
c=(a*b)/d450 CE Aryabhata found in Sanskrit Mathematics
ditto 1290 CELivero de l’abbecho,found in Italy
ditto 1307 CETractatus algorismifound in Vatican, Italy
ditto 1300 CETalkhis of Ibn al-Banna Arabic
d=(a*b)/c1290CEAryabhatafound in Sanskrit Mathematics
Y=(b/a)*X 1200CEibn Thabat Arabic,rare and difficult for computers, possible division by zero etc.
b/a=d/c reciprocate ratios
a/c=b/d sideways
a*d=b*ccross multiplication
a/(a+b)=c/(c+d) cross multiplication
c=(a*d)/bsolving for c, cross multiplication
d=(b*c)/asolving for d, cross multiplication
(a+b)/b=(c+d)/d
(a-b)/b=(c-d)/d
(a-b)/(a+b)=(c-d)/(c+d)
a:b:c multiple proportion entries

### Testcases Section

In planning any software, it is advisable to gather a number of testcases to check the results of the program. The math for the testcases can be checked by pasting statements in the TCL console. Aside from the TCL calculator display, when one presses the report button on the calculator, one will have console show access to the capacity functions (subroutines).

#### Testcase 1

The tablet lists 800 manas of bitumen ku3-bi (silver its) 4 pieces of silver. What is the equivalence value of one piece of silver? Set up the equation a/b= c/d, cross multiply for a*d=b*c, and solve for c=(a*d)/b. f(c) equals c=( 800*1)/4 or 200. The eTCL calculator returns 200. In some Sumerian eras, one silver piece was valued at 4 ban of barley (10 liters), so silver pieces times 4 ban gives the barley equivalence (1*4.). The eTCL calculator returns 4 ban of barley. A skilled craftsman was paid 1 ban of barley a day, so 4 ban was equivalent of 4 days work.
```    namespace path {::tcl::mathop ::tcl::mathfunc}
set solution_c=(a*d)/b_ [/  [* 800. 1.  ]  4. ]```

#### Testcase 2

The tablet lists 7200 reed bundles se-bi (barley its) 24 gur of barley. What is the equivalence value of one gur of barley? Set up the equation 7200/24= c/1, cross multiply, and solve for c. f(c) equals c=( 7200*1)/24 or 300. The eTCL calculator returns 300 reed bundles per gur of barley.
`    set solution_c=(a*d)/b_ [/  [* 7200. 1.  ]  24. ]`

#### Testcase 3

The tablet lists 9 barig (bushels) of dates ku3-bi (silver its) 3 shekels of silver. What is the equivalence value of one silver piece? Set up the equation 9/3= c/1, cross multiply, and solve for c. f(c) equals c=( 9*1)/(3) or 3. The eTCL calculator returns 3. barig of dates per one silver piece.
`    set solution_c=(a*d)/b_ [/  [* 9. 1.  ]  3. ]`

#### Testcase 4

The tablet lists 40 female workers employed for 20 days a-bi (labor its) 13_20 days (800 days in base 60). Actually, the tablet gives the answers needed. However, set up the equation 800/(40)= c/1, cross multiply, and solve for c. f(c) equals c=(800*1)/(40) or 20. The eTCL calculator returns 20 days service from each female worker.
`    set solution_c=(a*d)/b_ [/  [* 800. 1.  ]  40. ]`

#### Testcase 5

The tablet lists 1_2 workdays for female workers employed on the riverbank? of the Priestess? of the Goddess Ab-sin? gathering “tall grass” a-bi (labor its) 1_2 days (62 days in base 60). There are some elements missing here, but we have a bag of assumptions. Some other entries list ~40 female workers, so the solution will use ~40. Set up the equation 62/(~40)= c/1, cross multiply, and solve for c. f(c) equals c=(62*1)/(~40) or decimal ~1.5. The eTCL calculator returns 1.55 days for each worker.
`set solution_c=(a*d)/b_ [/  [* 62. 1.  ]  40. ]`

#### Testcase 6

The tablet lists 3 male workers employed for 1_10 workdays (70 in base 60) a2-bi (labor its) 210 days production.The tablet gives the answers needed. However, set up the equation 210/(4)= c/1, cross multiply, and solve for c. f(c) equals c=(210*1)/(3) or 70. The eTCL calculator returns 70 days service from each male worker.
`set solution_c=(a*d)/b_ [/  [* 210. 1.  ]  3. ]`

#### Testcase 7

From separate tablets, bundles of reeds are equated to silas (liters) of liquid asphalt. Tablet 1: 2 reed bundles < esir2 E2-A-bi > (its asphalt) 2/3 sila3. Tablet 2 poss. garbled: 1/2 reed bundles < esir2 E2-A-bi > (its asphalt) 1/3 sila3. By inspection, the proportions from the separate tablets do not seem equal, 2:(2/3) =| (1/2):(1/3). However, the Sumerians smeared pitch on reed mats and baskets to waterproof them. With the equivalents from the eTCL calculator, Tablet 1 uses 1 sila asphalt for 3 reed bundles. Tablet 2 uses 1 sila asphalt for 1.5 reed bundles.
```    set solution_c=(a*d)/b_ [/  [* 2. 1.  ]  .666 ]
set solution_c=(a*d)/b_ [/  [* 0.5 1. ]  .333 ]```

#### Testcase 8

Perhaps the most intriguing use of Sumerian Equivalency Values is where volumes or piles of bricks are given with three or more dimensions and equated to the number of bricks, using the word formula sig4-bi (its bricks). For example converting to metric and modern units, one brick pile was X/Y/Z 12/2/2 meters sig4-bi (its bricks) 9288 bricks. Presumably the volume X/Y/Z is a rectanguloid prism and would contain 12*2*2 or 48 cubic meters. Set up the equation, 48/9288= c/1, cross multiply, and solve for c. f(c) equals c=(48*1)/9288 or 5.-3. The eTCL calculator returns 5.167E-3 cubic meters per brick.
`set solution_c=(a*d)/b_ [/  [* 48. 1.  ]  9288. ]`

### References:

• Equivalency values of the UR III period, Robert K. Englund, CDLI Library
• [1]
• Equivalency values page & CDLI MySQL search engine , CDLI Library
• [2]
• Rare traces of constructional procedures,Jens Hoyrup
• Written Mathematical Traditions in Ancient Mesopotamia,Jens Høyrup
• Powers of 9 and related mathematical tables from Babylon
• Mathieu Ossendrijver (Humboldt University, Berlin)
• Linear interpolation and a clay tablet of the old Babylonian period,by J.R. Higgins
• Sumerian numeration and metrology, Marvin A. Powell
• On the curious historical coincidence of algebra and double-entry bookkeeping,
• Albrecht Heeffer, Universiteit Gent
• Material Culture of Calculation, by ,Peter Damerow,Max Planck Institute
• Sanskrit-Prakrit interaction on the rule of three, Jens Høyrup, Max Planck Institute
• Sanskrit-Prakrit interaction ... highly recommend on this subject

## Appendix Code edit

### appendix TCL programs and scripts

```        # pretty print from autoindent and ased editor
# Sumerian equivalency  calculator
# written on Windows XP on eTCL
# working under TCL version 8.5.6 and eTCL 1.0.1
# gold on TCL WIKI , 14aug2013
package require Tk
namespace path {::tcl::mathop ::tcl::mathfunc}
frame .frame -relief flat -bg aquamarine4
pack .frame -side top -fill y -anchor center
set names {{} {a quanity1 units:} }
lappend names {b quanity2 units:}
lappend names {c quanity1 units: }
lappend names {d quanity2 units (optional): }
lappend names {answer: price equivalence units:}
lappend names {price in silver pieces:}
lappend names {price in barley units: }
foreach i {1 2 3 4 5 6 7} {
label .frame.label\$i -text [lindex \$names \$i] -anchor e
entry .frame.entry\$i -width 35 -textvariable side\$i
grid .frame.label\$i .frame.entry\$i -sticky ew -pady 2 -padx 1 }
proc about {} {
set msg "Calculator for Sumerian Equivalency Values
from TCL WIKI,
written on eTCL "
tk_messageBox -title "About" -message \$msg }
proc generic_price {s_once manas silver } {
set price 1
set price [ / [* \$s_once \$manas ] \$silver]
return \$price
}
proc calculate {     } {
global side1 side2 side3 side4 side5
global side6 side7 testcase_number
global manas barley_equal silver
global s_once
incr testcase_number
set price 1.
set manas \$side1
set silver \$side2
set s_once \$side3
set barley_equal 1.
set price [generic_price \$s_once \$manas \$silver]
set barley_equal [* \$s_once 4.]
set side5 \$price
set side6 \$s_once
set side7 \$barley_equal  }
proc fillup {aa bb cc dd ee ff gg} {
.frame.entry1 insert 0 "\$aa"
.frame.entry2 insert 0 "\$bb"
.frame.entry3 insert 0 "\$cc"
.frame.entry4 insert 0 "\$dd"
.frame.entry5 insert 0 "\$ee"
.frame.entry6 insert 0 "\$ff"
.frame.entry7 insert 0 "\$gg"}
proc clearx {} {
foreach i {1 2 3 4 5 6 7} {
.frame.entry\$i delete 0 end } }
proc reportx {} {
global side1 side2 side3 side4 side5
global side6 side7 testcase_number
global manas barley_equal silver
global s_once
console show;
puts "testcase number: \$testcase_number"
puts "weight manas: \$manas"
puts "silver pieces: \$silver"
puts "target s_once: \$s_once"
puts "barley eq. of silver: \$barley_equal"
}
frame .buttons -bg aquamarine4
::ttk::button .calculator -text "Solve" -command { calculate   }
::ttk::button .test2 -text "Testcase1" -command {clearx;fillup 800. 4. 1. 200. 200.  1. 4. }
::ttk::button .test3 -text "Testcase2" -command {clearx;fillup 7200. 24. 1. 300.  300. 1. 4. }
::ttk::button .test4 -text "Testcase3" -command {clearx;fillup 9. 3. 1. 3. 3.  1. 4. }
::ttk::button .clearallx -text clear -command {clearx }
::ttk::button .cons -text report -command { reportx }
::ttk::button .exit -text exit -command {exit}
pack .calculator  -in .buttons -side top -padx 10 -pady 5
pack  .clearallx .cons .about .exit .test4 .test3 .test2   -side bottom -in .buttons
grid .frame .buttons -sticky ns -pady {0 10}
. configure -background aquamarine4 -highlightcolor brown -relief raised -border 30
wm title . "Sumerian Equivalency Values Calculator "
```

### Pushbutton Operation

For the push buttons, the recommended procedure is push testcase and fill frame, change first three entries etc, push solve, and then push report. Report allows copy and paste from console. While the testcases are in meters, the units either cancel out or are carried through in the calculator equations. So the units could be entered as English feet, Egyptian royal cubits, Sumerian gars, or Chinese inches and the outputs of volume will in the same (cubic) units. This is an advantage since the units in the ancient Sumerian, Indian, and Chinese texts are open to question. In some benign quarters of the globe, feet and cubic feet were still being used for design in the 1970's.

For testcases in a computer session, the eTCL calculator increments a new testcase number internally, eg. TC(1), TC(2) , TC(3) , TC(N). The testcase number is internal to the calculator and will not be printed until the report button is pushed for the current result numbers (which numbers will be cleared on the next solve button.) The command { calculate; reportx } or { calculate ; reportx; clearx } can be added or changed to report automatically. Another wrinkle would be to print out the current text, delimiters, and numbers in a TCL wiki style table as
```  puts " %| testcase \$testcase_number | value| units |comment |%"
puts " &| volume| \$volume| cubic meters |based on length \$side1 and width \$side2   |&"  ```

### Initial Console Program

```        # pretty print from autoindent and ased editor
# Sumerian equivalency formulas
# written on Windows XP on eTCL
# working under TCL version 8.5.6 and eTCL 1.0.1
# gold on TCL WIKI , 14aug2013
package require Tk
namespace path {::tcl::mathop ::tcl::mathfunc}
console show
proc generic_price {silver_once manas silver } {
set price 1
set price [ / [* \$silver_once \$manas ] \$silver]
return \$price
}
set manas 600.
set silver 3.
set silver_once 1.
set price [ / [* \$silver_once   \$manas ] \$silver]
set workdays [ / [* 2 60]   10 ]
puts "bread loaves for one silver \$price"
puts "grain bowls for one silver \$price"
puts "man workdays   \$workdays"
puts "subroutine answer [ generic_price 1. 600. 3 ]"
```