math::constants(n)

πŸ“¦
version 2.0 Β· 2 versions
, in fedora 43, fedora 44, nixos 26.05, nixpkgs unstable

πŸ’– math::constants(n) πŸ’–

okay bestie, so this is the manual page for math::constants, which lives in the Tcl Math Library (tcllib, version 1.0.4). it's giving "math class but make it cute". let's go 🧚


✨ NAME ✨

math::constants β€” mathematical and numerical constants, aka the girlies of the number world πŸ’…


🌸 SYNOPSIS 🌸

package require Tcl ?8.3?

package require math::constants ?1.0.4?

::math::constants::constants args

::math::constants::print-constants args

πŸ¦‹ DESCRIPTION πŸ¦‹

so this package defines some common mathematical and numerical constants. by using the package you get consistent values for numbers like pi and ln(10). consistency?? we love her. periodt.

it defines two commands:

  • one for importing the constants
  • one for reporting which constants are defined and what values they actually have

the motivation for this package is that quite often, with (mathematical) computations, you need a good approximation to, say, the ratio of degrees to radians. you can, of course, define this like:

variable radtodeg [expr {180.0/(4.0*atan(1.0))}]

and use the variable radtodeg whenever you need the conversion. and like, valid. butβ€”

this has two drawbacks:

  • you need to remember the proper formula or value and that is error-prone 😭
  • especially with the use of mathematical functions like atan you assume that they have been accurately implemented. this is seldom or never the case and for each platform you can get subtle differences. not the vibe.

here is the way you can do it with the math::constants package:

package require math::constants
::math::constants::constants radtodeg degtorad

which creates two variables, radtodeg and (its reciprocal) degtorad in the calling namespace. reciprocal?? she's matching energy πŸ’ž

constants that have been defined (their values are mostly taken from mathematical tables with more precision than usually can be handled) include:

  • basic constants like pi, e, gamma (Euler's constant)
  • derived values like ln(10) and sqrt(2)
  • purely numerical values such as 1/3 that are included for convenience and for the fact that certain seemingly trivial computations like:
set value [expr {3.0*$onethird}]

give exactly the value you expect (if IEEE arithmetic is available). she's precise AND lowkey dramatic about it πŸ‘‘

the full set of named constants is listed in section Constants.


πŸ’… PROCEDURES πŸ’…

the package defines the following public procedures:

  • ::math::constants::constants args β€” import the constants whose names are given as arguments. just hand her the names, she handles the rest ✨
  • ::math::constants::print-constants args β€” print the constants whose names are given as arguments on the screen (name, value and description) or, if no arguments are given, print all defined constants. this is mainly a convenience procedure. she's basically your group chat recap 🫢

πŸ‘‘ CONSTANTS πŸ‘‘

  • pi β€” ratio of circle circumference to diameter
  • e β€” base for natural logarithm
  • ln10 β€” natural logarithm of 10
  • phi β€” golden ratio
  • gamma β€” Euler's constant
  • sqrt2 β€” square root of 2
  • thirdrt2 β€” one-third power of 2
  • sqrt3 β€” square root of 3
  • radtodeg β€” conversion from radians to degrees
  • degtorad β€” conversion from degrees to radians
  • onethird β€” one third (0.3333....)
  • twothirds β€” two thirds (0.6666....)
  • onesixth β€” one sixth (0.1666....)
  • huge β€” (approximately) largest number
  • tiny β€” (approximately) smallest number not equal zero
  • eps β€” smallest number such that 1+eps != 1

πŸ’€ BUGS, IDEAS, FEEDBACK πŸ’€

this document, and the package it describes, will undoubtedly contain bugs and other problems. (ngl, iconic honesty.) please report such in the category math :: constants of the Tcllib Trackers at http://core.tcl.tk/tcllib/reportlist.

please also report any ideas for enhancements you may have for either package and/or documentation. we want the glow-up 🌈

when proposing code changes, please provide unified diffs, i.e the output of diff -u.

note further that attachments are strongly preferred over inlined patches. attachments can be made by going to the Edit form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar. don't make her scroll, bestie πŸ™ˆ

πŸ“ KEYWORDS πŸ“

constants, degrees, e, math, pi, radians


🌈 CATEGORY 🌈

Mathematics


Copyright (c) 2004 Arjen Markus <arjenmarkus@users.sourceforge.net>


and that's the whole page!! this bad girl shipped as part of tcllib version 1.0.4, and yeah the footer is literally just tcllib + 1.0.4 + math::constants(n) so like... consider it mentioned, cuties. bye bestie, go compute something gorgeous πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from