Skip to main content
1-Visitor
July 12, 2010
Question

Mathcad Documentation completeness question

  • July 12, 2010
  • 4 replies
  • 10644 views

I have said on several occasions that there is a need for Mathcad documentation. Let me be more clear. Here is the sort of information I miss.

  1. Concerning Mathcad interactive specification. Is there a set of syntax diagrams or BNF notation specification of the complete Mathcad interactive interface?
  2. Is their a complete list of ALL the Mathcad data structures types?
  3. Is their a complete specification of what can and can not be put into place holders in each and every context?
  4. Is there and specifications that tell all the contexts that subscripts and superscripts are valid to use?
  5. Is there any specification of what can and can not be put into a subscripts in various contexts?
  6. Is there any uniform parsing standards that tells when and where various implementations will or will not work?
  7. Is there any specifications where only scalars can be used?
  8. Is there any documentation that document the valid domain and ranges in regard to values and value types of all the implementations?

(I apologize if I have been sloppy in the overlaps and holes in the coverage of my questions).

How wonderful it would be to know what one can and can not do in any particular context without any waste of time or thrashing around in the dark!

Sincerely submitted, JS

4 replies

1-Visitor
July 12, 2010

John,

There is a technical answer for each of your questions but your list is too short , it might just confuse. You already know that Mathcad does not support superscript unless you define as an operator, It does support literal and/or numerical subscript as a variable name, but don't confuse with index, which index may be a single numerical value or an integer range. I'm surprised there is no link to the PTC Mathcad work sheets repository, that you can download and learn quick how to construct a project in supplement to the qs delivered with the Mathcad install CD.

See you soon while you are brewing your project .

Jean

8-Gravel
July 12, 2010

Hi John,

With regards to the types of data to use in each context, did you know you can use context-sensitive Help for every feature and function in Mathcad? For example, let's say you want to use a function, but need more information on the function's arguments. You can insert the function into your worksheet, place the pointer on the function name, and press F1. This will open the Help page for that specific function. You'll be able to see what type of arguments the function takes, and for example, if it only accepts scalars. You can also access context-sensitive Help via the Insert Function dialog box.

The documentation cannot cover all possible scenarios and implementations, but if you know which functions and operators you need, you can use context-sensitivity for finding the information you seek. As Jean points out, you can also refer to the Mathcad Resource Center and download worksheets and example files for your reference.

Ibrahim

1-Visitor
July 14, 2010

Thanks Ibrahim,

I have used the context help, and it is good as far as it goes. But in regard to the completeness of the documentation, there is a reason for that.

There is another system we all know about it that is incredibly widely used. It is called the Decimal System. The Decimal System is easily documented. So easy, in fact, many people who use it could document it completely in a few minutes. Now think about another system that is impossible to completely document. It is called the Roman Numeral System. In the Roman Numeral System, in order to make bigger numbers, it is necessary to invent new conventions of representation.

One system is completely systematic with a necessary and sufficient set of rules, and the other is ad hoc and open ended and requires new conventions in order to create larger and larger numbers. Please note how much more one of these systems is used than the other. Tthat alone tells me that just how worthy it is to strive to make our systems more like the Decimal System and less like the Roman Numeral System.

Mathcad is not bad as systems go, in regard to ease of use and the like...but like most systems it is, in fact, very mediocre compared to the real limits of just how good it really could be.

Here is a short sampling of how Mathcad is "Roman Numeral" like. I don't think the Mathcad syntax and behavior was thought out very carefully in regard to a number of concerns. So Mathcad is maybe a bit better than typical, but in no way any where near what it could be. Remember world markets run in the billions.

Here are examples of just one small area of syntax/behavior of how Mathcad is more "Roman Numeral" like than "Decimal" like. Mathcad is more or less impossible to completely document. The very best syntax and set of conventions would not have these kinds of problems.

sintax.GIF

I'm sorry I'm such a grouch about Mathcad...but there is Prime coming down the line, and I hope....or at least wish...that they would make it better in these regards. I haven't actually seen it yet.

1-Visitor
July 14, 2010

John Sellers wrote:

sintax.GIF

I'm sorry I'm such a grouch about Mathcad...but there is Prime coming down the line, and I hope....or at least wish...that they would make it better in these regards. I haven't actually seen it yet.

Well, lots of luck with that...

Your issues with Mathcad seem somewhat unwarranted, as the issues you've raised are not necessarily issues with Mathcad, per se, but with MATH and its notational limitations. The bottom line is that the multiplication symbol in general usage is overloaded as are many other math symbols and operators. You can check any set of college level math texts and see that. Now, Mathsoft made certain choices in implementing the notation, some good, and some bad. When two vectors are operated upon with a multiplication operator, it makes some sense to interpret that as a dot product. However, squaring a vector is not the equivalent of the dot product of a vector with itself, so some ambiguity exists, which is somewhat outside of the purview of Mathcad.

1-Visitor
July 12, 2010

John Sellers wrote:

I have said on several occasions that there is a need for Mathcad documentation. Let me be more clear. Here is the sort of information I miss.

  1. Concerning Mathcad interactive specification. Is there a set of syntax diagrams or BNF notation specification of the complete Mathcad interactive interface?
  2. Is their a complete list of ALL the Mathcad data structures types?
  3. Is their a complete specification of what can and can not be put into place holders in each and every context?
  4. Is there and specifications that tell all the contexts that subscripts and superscripts are valid to use?
  5. Is there any specification of what can and can not be put into a subscripts in various contexts?
  6. Is there any uniform parsing standards that tells when and where various implementations will or will not work?
  7. Is there any specifications where only scalars can be used?
  8. Is there any documentation that document the valid domain and ranges in regard to values and value types of all the implementations?

(I apologize if I have been sloppy in the overlaps and holes in the coverage of my questions).

How wonderful it would be to know what one can and can not do in any particular context without any waste of time or thrashing around in the dark!

Sincerely submitted, JS

I guess I'm unclear as to why you think you need BNF notation for anything Mathcad related. There's already context help, along with the Insert Function descriptions. In most cases where I've needed to use the help files, the descriptions were adequate for what I was looking for, so I'm unclear as to what you think might be missing. I would never think BNF to be that useful, since it was specifically intended for a very specific audience doing a very specific task, neither of which exist for myself or anything I do. While BNF has a precisceness that's required for formal software specifications, it's not particularly user-friendly and is very off-putting for casual users and non-programmers.

As for number types, there's basically only one type that's used almost always, which is a straight floating point number whose range is fixed to roughly 10^-307 to 10^+307. There are some limited types for non-decimal radix input, but they're converted to floating point internally.

So far as I know, the major complaint over the years has been more the lack of a printed manual, or even a PDF manual version of what used to be in the Mathcad function reference manuals. The same information, more or less, is in the help files and in the Insert Function dialog boxes.

1-Visitor
July 13, 2010

Actually BNF can be very valuable.

Here is an example of how I was effected in Mathcad. In May I posted http://communities.ptc.com/thread/6282 (quest for 3D plot capabilities) and nobody answered my question for over a month. I finally posted a crude work around, and then jean Giraud responded and at that point I finally learned 3D plot could display multiple objects by accepting a sub-indexed list of meshes. (which BTW I have never been able to find documentation for in help). If the BNF notation for the 3D place holder existed, I would have learned that simple fact about 30 seconds after I started looking instead of waiting a month before I got around to chasing the answer.

Why 30 seconds? Because I would only have to look in one place to find the names of the structure of interest, and it would certainly exist in that one place. If I needed more, I would have the right search term to search on. That is what BNF or some other formal syntax can do for you.

What is even more important about having BNF is that the understanding of the capabilities of a data structure, operator, function, et al can be brought to a closure in a short time by examining the syntax and using it as a key to understanding. Otherwise one is regulated to a slow and protracted process that may take years.

Single sourcing all syntax rules by having a formal syntax established - the path to superior quality.

I have had the experience of sitting down for the first time with a complicated user interface and within two hours know exactly how to use more than 200 functions. I was able to work for two weeks on a project with no need to go back to look at help or have any doubt in my mind how to implement the project or how it would behave when I was done.

I've also had the experience working with 5 lines of critical undocumented code with an ad hoc & open ended syntax for 2 months. That system used homogeneous coordinates as a backbone and I was able to add the capability of dragging and dropping scalable, rotatable widgets on any application in the environment. After two months of work, I never succeeded in determining that there were no bugs in those 5 lines of code because of the arbitrary way the rest of the system was syntactically and semantically structured and related to this critical code. Actually during those 2 months I made corrections in those 5 lines of code that fixed capabilities that were broken at the system level that would have never been broken if the relationship among things had had a solid structure.

The critical difference between the two systems was the fact that in one, all syntax was clearly defined, and the other had almost an infinite number of unintended consequences due to inability to directly examine the huge number of conceivable interactions between or among components that were independently conceived in isolation from one another. Well defined syntax is a necessary component of preventing such situations.

You show me any system that does not have complete syntax definition, and I will show you a system that over time will degenerate or become frozen in respect to the ability to improve it or make it more stable regardless of claims or belief to the contrary. Sound familiar?

I could say more, but it is time to wrap up this rant.

1-Visitor
July 14, 2010

Several things John,

The former Mathcad collab went down Feb 4 2010 [from recollection], down for a very long period. Sometimes in April it went back and almost deserted . I rejoined in this one June 22 and realized that many collabs have either deserted for good or just visit. About using Mathcad, personally I have learned most of it [in fact all of it] from the Mathcad 8 Pro. Treasury that does not exist anymore for a long time. The Mathcad structure is so VAST that it's about impossible to make any diagram . I'm saying that based on my exceptional ability to put things/words/facts in picture/diagram [over 30 years in Process Control and Logic]. In fact I have several work sheets called "For Loop Structure". The remaining of several hundred MB of work sheet is the remaining of the "Mathcad structure".You learn Mathcad by doing, and so many structures were discovered between collabs ! The way you mention having learned 200 functions shortly is because you were familiar with similar systems [that reminds me: Siemens, Bailey, Foxboro, Honeywell, Micon, Asea, Leeds & Northrup...] . I understand the importance of understanding quick what one system can and can't do for bidding on projects, especially when the client has some kind of "Proprietary Expertise" .

''''''''''''''''''''''''''''''''''''''''''''

I can see you sweating in there ! ! !

>The critical difference between the two systems was the fact that in one, all syntax was clearly defined, and the other had almost an infinite number of unintended consequences due to inability to directly examine the huge number of conceivable interactions between or among components that were independently conceived in isolation from one another. Well defined syntax is a necessary component of preventing such situations.<

You are right about systems that get frozen and can't be improved by lack of provision, but that as well for digital [numerical] system as for analog systems. The Heavy Water Plant got frozen for months by lack of provision in the GEPAC temperature reading: below -20°C it started inversing the reading ... no documentation, just machine code to get the piece of maths on TI-58.

Concerning Mathcad, You learn project by project. It takes years and in the mean time one forgets the rational of thinking, like losing calculus.
Cheers John, please stay in this community.


Jean

1-Visitor
July 15, 2010

BNF is completely inappropriate for Mathcad. BNF describes languages whose elements are strings of symbols (from some specified alphabet). Mathcad does not use such a string representation for expressions.

1-Visitor
July 20, 2010

Generally I'm going to support Tom on this one. Part of the problem is that BNF is a particular style of documenting how stuff works in textural environments. It presupposes a [limited] particular set of key operations that can be recorded in a certain way. In that context BNF isn't appropriate to MathCAD.

This is not to say that there aren't other structured methods for documenting MathCAD's base functionality. Unfortunately I haven't seen one.

Plus the style of mathcad usage is such that users create a lot of additional functionality within their (longer) sheets that would need a mechanism for automating that documentation so users (multi-user worksheets) can navigate more easily. I've made suggestions about particular bits of point functionality I'd like but not have been picked up.... shame.

Philip