== landauer
Use the Landauer limit to calculate my program's entropy.
[[toc:]]
=== Landauer's principle
[[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 ''kT'' ln
2 J of heat.
We can use Landauer's principle to calculate a lower-bound on
the energy released by our program, given some number of
bit-operations.
=== Documentation
==== {{landauer}}
'''[module]''' {{landauer}}
The Landauer module contains contains some constants, parameters
and procedures for calculating a lower-bound on the heat-dissipation
of programs.
* [[#heat]]
* [[#k]]
* [[#room-temperature]]
==== {{k}}
k → 1.38e-23
The Boltzmann constant
(define k 1.38e-23)
==== {{room-temperature}}
room-temperature → 298.15
Room temperature in K
(define room-temperature (make-parameter 298.15))
==== {{heat}}
(heat operations) → number
Calculate a lower-bound on the heat dissipated by some number
of irreversible bit-operations.
Room-temperature is governed by the [[#room-temperature]]
parameter.
; {{operations}} : The number of irreversible bit-operations
(define (heat operations) (* operations k (room-temperature) (log 2)))
=== About this egg
==== Author
[[/users/klutometis|Peter Danenberg]]
==== Repository
[[https://github.com/klutometis/landauer]]
==== License
BSD
==== Dependencies
* [[(hahn 0.9.3)]]
==== Versions
; [[https://github.com/klutometis/landauer/releases/tag/0.0|0.0]] : Initial commit
; [[https://github.com/klutometis/landauer/releases/tag/0.0.1|0.0.1]] : Also export k and room-temperature.
==== Colophon
Documented by [[/egg/hahn|hahn]].