Skip to main content
23-Emerald V
July 5, 2015
Question

Prime 3.1 - Problem with until function?

  • July 5, 2015
  • 3 replies
  • 6124 views

I was looking at some of the Rosetta Code challenges for implementation in Mathcad and decided to try a couple in Prime Express (as this is what I have).  The major drawback to Express is the lack of programming capability, but there's quite a bit that can be (or should be able to be done) using just range variables and functions that don't make use of programs.

I wanted to pick all of the non-zero elements out of a vector and decided to use the until function to sweep through a reverse sorted vector until it hit a zero.   However, Prime keeps telling me that 'until' is undefined, even though I inserted it using the Functions Dialog. Express doesn't raise an alert saying that it's Premium Feature, so I'd expect it work. Neither can I find anything in the Migration Guide or Help to indicate it's been deprecated.  Is there a known problem with the until function in Prime 3.1?

Stuart

3 replies

23-Emerald IV
July 6, 2015

Mathcad 11.2 'knows' the function: if called with a single parameter it complains there's one missing, if called with 3 parameters it complains there's one too much. If called with two parameters it marks the error: "This function is obsolete. Press [F1] for Help.".

The function is listed with description,

     Function for iteration: until(x,y) This function allows you to halt an iterative process based on a condition. Returns y until x is negative.

     Arguments:   x is a test expression (usually involving a negative, the until function halts iteration.

                         y is the value returned by the until function at each iteration.

but also in the list of obsolete functions.

     The obsolete functions include: APPEND, READ, until, WRITE.

     These functions continue to exist in Mathcad to support backward compatibility, but their use is discouraged.

So if I set the worksheet calculation mode to 'backwards compatible' it 'works' although I cannot find it to stop iteration. I tried your expression: iteration runs through to 12.

For 'until(9-k, k^2)' I would expect the iteration to run to 9 but it outputs the full range of k^2:

Ah, you cannot use it this way. It must be like:

or is the same. Too bad for the 0 at the end.

In Prime 3.0 (Express) I get the same error as you find in 3.1.

23-Emerald V
July 6, 2015

LucMeekes wrote:

Mathcad 11.2 'knows' the function: ..

but also in the list of obsolete functions.

     The obsolete functions include: APPEND, READ, until, WRITE.

     These functions continue to exist in Mathcad to support backward compatibility, but their use is discouraged.

So if I set the worksheet calculation mode to 'backwards compatible' it 'works' although I cannot find it to stop iteration. I tried your expression: iteration runs through to 12.

For 'until(9-k, k^2)' I would expect the iteration to run to 9 but it outputs the full range of k^2:


In Prime 3.0 (Express) I get the same error as you find in 3.1.

That's interesting.  Thanks, Luc.   I don't use until very often, but it has its occasional uses, particularly when I'm developing an algorithm (or, more likely, debugging a program).

I ran your example in Mathcad 15 and got this ...

So it definitely appears to have been been unbroken in M15!

Stuart

23-Emerald IV
July 6, 2015

Hi Stuart,

Note that I changed my response after you grabbed it, see above.

Good to see that the final 0 is omitted in Mcad15, and I guess they put it back in the 'fully supported' list.

Did you try (as I initially did) to just get the result from, e.g. 'until(7-k,k)='  ?

Luc

23-Emerald V
July 8, 2015

StuartBruff wrote:

I was looking at some of the Rosetta Code challenges for implementation in Mathcad and decided to try a couple in Prime Express (as this is what I have).  The major drawback to Express is the lack of programming capability, but there's quite a bit that can be (or should be able to be done) using just range variables and functions that don't make use of programs.

I wanted to pick all of the non-zero elements out of a vector and decided to use the until function to sweep through a reverse sorted vector until it hit a zero.   However, Prime keeps telling me that 'until' is undefined, even though I inserted it using the Functions Dialog. Express doesn't raise an alert saying that it's Premium Feature, so I'd expect it work. Neither can I find anything in the Migration Guide or Help to indicate it's been deprecated.  Is there a known problem with the until function in Prime 3.1?

Stuart

Could somebody with a full Prime 3.1 please say whether they see the same thing as I get in Express?

Thanks,

Stuart

1-Visitor
July 8, 2015

Hello Stuart, I do indeed see the same thing using 3.1

23-Emerald V
July 8, 2015

Norm Schutzkus wrote:

Hello Stuart, I do indeed see the same thing using 3.1

Thanks, Norm.

As I'm not a maintenance customer, I can't raise a problem report. I'd be grateful, therefore, if an MC could flag it up to PTC.  Thanks.

Stuart

23-Emerald I
July 9, 2015

StuartBruff wrote:

I was looking at some of the Rosetta Code challenges for implementation in Mathcad and decided to try a couple in Prime Express (as this is what I have).  The major drawback to Express is the lack of programming capability, but there's quite a bit that can be (or should be able to be done) using just range variables and functions that don't make use of programs.

I wanted to pick all of the non-zero elements out of a vector and decided to use the until function to sweep through a reverse sorted vector until it hit a zero.   However, Prime keeps telling me that 'until' is undefined, even though I inserted it using the Functions Dialog. Express doesn't raise an alert saying that it's Premium Feature, so I'd expect it work. Neither can I find anything in the Migration Guide or Help to indicate it's been deprecated.  Is there a known problem with the until function in Prime 3.1?

Stuart

I've got Prime 3.0--we're being dragged "kicking and screaming,"

Prime does not have "until" in the programming operator menu.

1-Visitor
July 9, 2015

Hello Fred, it is a function under Piecewise Continuous.