(type egg)
(signature "landauer egg")
(timestamp 1612269487)
(sxml ((section 2 "Outdated egg!" (p "This is an egg for CHICKEN 4, the unsupported old release.  You're almost certainly looking for " (int-link "/eggref/5/landauer" "the CHICKEN 5 version of this egg") ", if it exists.") (p "If it does not exist, there may be equivalent functionality provided by another egg; have a look at the " (link "https://wiki.call-cc.org/chicken-projects/egg-index-5.html" "egg index") ". Otherwise, please consider porting this egg to the current version of CHICKEN.")) (section 2 "landauer" (p "Use the Landauer limit to calculate my program's entropy.") (toc) (section 3 "Landauer's principle" (p (link "http://en.wikipedia.org/wiki/Landauer%27s_principle" "Landauer's principle") " states that every irreversible operation produces entropy; erasing one bit, for instance, generates at least " (i "kT") " ln 2 J of heat.") (p "We can use Landauer's principle to calculate a lower-bound on the energy released by our program, given some number of bit-operations.")) (section 3 "Documentation" (section 4 (tt "landauer") (p (b "[module]") " " (tt "landauer")) (p "The Landauer module contains contains some constants, parameters and procedures for calculating a lower-bound on the heat-dissipation of programs.") (ul (li (int-link "#heat" "heat")) (li (int-link "#k" "k")) (li (int-link "#room-temperature" "room-temperature")))) (section 4 (tt "k") (def (sig (constant "k → 1.38e-23" (id k))) (p "The Boltzmann constant") (highlight scheme "(define k 1.38e-23)"))) (section 4 (tt "room-temperature") (def (sig (parameter "room-temperature → 298.15" (id room-temperature))) (p "Room temperature in K") (highlight scheme "(define room-temperature (make-parameter 298.15))"))) (section 4 (tt "heat") (def (sig (procedure "(heat operations) → number" (id heat))) (p "Calculate a lower-bound on the heat dissipated by some number of irreversible bit-operations.") (p "Room-temperature is governed by the " (int-link "#room-temperature" "room-temperature") " parameter.") (dl (dt (tt "operations")) (dd "The number of irreversible bit-operations")) (highlight scheme "(define (heat operations) (* operations k (room-temperature) (log 2)))")))) (section 3 "About this egg" (section 4 "Author" (p (int-link "/users/klutometis" "Peter Danenberg"))) (section 4 "Repository" (p (link "https://github.com/klutometis/landauer"))) (section 4 "License" (p "BSD")) (section 4 "Dependencies" (ul (li (int-link "hahn")))) (section 4 "Versions" (dl (dt (link "https://github.com/klutometis/landauer/releases/tag/0.0" "0.0")) (dd "Initial commit") (dt (link "https://github.com/klutometis/landauer/releases/tag/0.0.1" "0.0.1")) (dd "Also export k and room-temperature.") (dt (link "https://github.com/klutometis/landauer/releases/tag/0.0.2" "0.0.2")) (dd "Use hahn."))) (section 4 "Colophon" (p "Documented by " (int-link "/egg/hahn" "hahn") "."))))))
