• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Is there a function for mathematics constant PI?

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 144
  • Views 29623
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Is there a function for mathematics constant PI?

richardyuan
richardyuan over 11 years ago
what's the expression for π in cadence skill?
  • Cancel
  • tweeks
    tweeks over 11 years ago

    Thanks for the insights, Andrew.  From your explanation, I can see why the GDM API works as it does.  It sounds like, from a C programmer's point of view, it seems quite natural.

    I'm very curious as to the history of defMathConstants.  In Common Lisp and Emacs Lisp, those constants are simply bound to the value slots of certain symbols: pi, most-positive-fixnum, etc.  I couldn't find any mention of math constants in my Franz Lisp literature, so it seems to be something added by the SKILL developers, but I would like to know why they chose to use symbol property lists over the usual Common Lisp and Emacs Lisp conventions.  Maybe since the math constants ultimately are from C's math.h, it was easier to expose them to SKILL through property lists than by binding individual variables?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Unfortunately I'm unable to offer much more than speculation. Looking at a comment in the source code, there's a PCR number reference (the predecessor to our current CCR system for tracking changes). The number is low enough that it would have been before I joined Cadence, and at a rough guess about 20 years ago. It's not from the era of the early days of SKILL (late 1980's) but more like 1994. None of the people involved in developing SKILL then are still around, and the PCR system no longer exists so I can't find out the history.

    I suspect that it was a pragmatic decision at the time based on requests from users/R&D, rather than looking around to see what other LISP implementations did.

    Regards,

    Andrew. 

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tweeks
    tweeks over 11 years ago

    Thanks Andrew.

    I should start a new thread about SKILL's history.  :)  There's a lot of interesting stuff there.  For example,

    • It is documented that SKILL was based on Franz Lisp.  Franz Lisp, in turn, was based on a PDP-11 Lisp which seems to have been originally written by none other than Richard Stallman while he was a freshman at Harvard!  (See section 1.1 here and paragraph 2 here.)  Some of the distinguished builtins in SKILL, like getd and putd (not found in CL or Emacs Lisp), were inherited from this Harvard PDP-11 Lisp.
    • Franz Lisp was developed at Berkeley, and its documentation continues the musical theme, being divided into four "movements" with traditional Italian tempos: "allegro non troppo", "largo".  The final movement is "allegro", which later became the name of Franz Lisp Inc's Common Lisp implementation.  Can we assume the names "Cadence", "Virtuoso", "Composer", etc. are continuations of the Franz theme?
    • Franz Lisp seems to be where the idea of "type template characters", like "l" for list and "x" for fixnum, came from, though SKILL added the idea of specifying them in the definition of a procedure.  (In Franz, they were only used in the documentation.)  Franz Lisp had a few features SKILL does not, like a low-level type called a "hunk", and support for bignums (arbitrarily large integers).  Franz also had support for reader macros strong enough to implement infix operators, which may be how they are done in SKILL today, though the user API for creating reader macros has apparently been hidden to prevent chaos. :)
    • Franz Lisp had an excellent debugger called "FIXIT" which SKILL has largely retained. 

    You must know a lot about the history of SKILL, Andrew.  Please share! :D

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
<

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information