From: Derek O'Connor on
"Bruno Luong" <b.luong(a)fogale.findmycountry> wrote in message <hppd8c$36q$1(a)fred.mathworks.com>...
--- snip --
> I used to defend the use of Matlab in our commercial product when I discuss to my colleagues about software development strategy. I'll be more reluctant to do so in the future.
>
> Bruno


I agree with Bruno.

For me the greatest deficiency in Matlab is the lack of SINGLE floats, and various types of integers. It may be time to move on, or back to C or Fortran.

Derek ("Make Mine a Single") O'Connor
From: Honglei Chen on
Hi Bruno,

We take backwards compatibility very seriously. In releases prior to
R2010a, sgolayfilt() and other functions in Signal Processing Toolbox
returned a double precision output even when the input was single
precision. If you expected to save memory you probably wanted single
inputs to produce single outputs. We had concerns that that this implicit
cast (single in, double out) would be unexpected. Since this function
never really supported single precision we opted to check for input data
types and error out instead of returning what might be considered a silent
wrong answer in case of single data type inputs.

If you used to pass single precision inputs to sgolayfilt(), the best
workaround is to explicitly cast these inputs to double (e.g.
sgolayfilt(double(x),k,f) where x was single). You can also cast the output
to single if there is no further downstream processing or if the code
supports single data types. With explicit casts, your code will work the
same way before and after R2010a.

You are correct that starting from version 6.13 (R2010a), Signal Processing
Toolbox supports single data type in dfilt objects. Notice however that the
single precision support is limited to these objects. In general, Signal
Processing Toolbox functions only support the double data type. Sorry to
hear the last upgrade has caused you some pain.

HTH,

Honglei

Bruno Luong wrote:

> Honglei Chen <Honglei.Chen(a)mathworks.com> wrote in message
> <hpoaee$l6j$1(a)fred.mathworks.com>...
>> Hi Bruno,
>>
>> If you open the documentation for Signal Processing Toolbox and go to
>> Getting Started -> Overview -> Product Overview, under Supported Data
>> Types section, it states that
>>
>> The Signal Processing Toolbox software supports only double-precision
>> inputs. If you input single-precision floating-point or integer data, you
>> should not expect to receive correct results, and in many cases, an error
>> will occur. The Filter Design Toolbox? product, in conjunction with the
>> Fixed-Point Toolbox? product, enables single-precision floating-point and
>> fixed-point support for filtering and filter design.
>>
>> HTH,
>>
>> Honglei
>>
>
> Thank you for Honglei, now it get even more question. The Release Notes of
> Version 6.13 of Signale Pr. Tbx states: "Single-Precision Support Added
> for dfilt Objects
>
> In R2010a, users can construct dfilt objects with single-precision
> floating point arithmetic. Set the Arithmetic property to 'single' to
> obtain a single-precision floating point representation of the filter
> coefficients.".
>
> Clearly it extend some of the capability of SINGLE.
>
> TMW must take more seriously the backward compatibility into account. The
> decision to cut down the action of the set function or move to another
> toolbox can be problematic problem for us.
>
> We develop commercial code that measures the blade of a turbine engine.
> Monitoring an engine with 20 blades running at 10kRPM requires a lot of
> memory. Storing it on single increase the monitoring time by 2 given the
> limited amount of memory. If TMW decides not to support SINGLE, then the
> spec of our product divide by half in the same token. In this particular
> case, fortunately we can still access to the source code and comment out
> the unfortunate checking part and get back to the original specification.
> But I must say, reducing a filter method that can no longer work on
> SINGLE, and further more without apparent numerical reason that can
> justify it (Yes I test the filter for few years with SINGLE and it works
> just fine) , and without proper warning in the release note is not the
> right thing to do.
>
> I used to defend the use of Matlab in our commercial product when I
> discuss to my colleagues about software development strategy. I'll be more
> reluctant to do so in the future.
>
> Bruno

From: dpb on
Jan Simon wrote:
....

> I also defend the use of Matlab for our software for clinical decision
> making --- ...
> ... But I have the impression that decisions about surgical
> operations of children should in no way and under no circumstances be
> influenced by (undocumented) changes of the computing system. I know,
> that every software is subject to changes, which must cause
> incompatibilities ever. Nevertheless, it would be nice to see that TMW
> does its very best.

You probably drove a very quiver into TMW legals, there, Jan... :)

I've not read it recently, but I'd be quite surprised if the licensing
information doesn't have specific disclaimers and all for such "critical
use" applications as medical, air flight control (and probably
automotive now given the propensity there), nuclear design, etc., etc.,
etc., ...

When in the commercial nuclear design arena I always thought it a little
odd that the tools had such limitations on them by the vendors but there
was no alternative (and still isn't for the most part) unless a
vendor/researcher were to write all their own toolsets from scratch as
well. Of course the likelihood of that toolset being any less buggy
than the commercial compiler would likely be indetectable from zero to
the first approximation and probably more so as a practical matter.

A disadvantage I see w/ Matlab and similar products is that being
proprietary there is not a broader Standards group that can add some
stability and balance to the progression process which makes breaks in
backward compatibility more difficult anyway, even if not entirely
removing them. This, of course, is a double-edged sword in that
standards take much longer to get revisions into and therefore lag and
mean less rapid innovation. OTOH, w/ a Standard body there is at least
an opportunity to comment before final acceptance on particularly sore
points even if one doesn't have the wherewithal to actually participate.
And, once there is an actual Standard, then the vendors have reason to
comply and users have recourse to expect both compliance and bug fixes
when found.

In other languages w/ Standards, there are, of course, vendor extensions
but at least there is a core basis that is pretty much immutable. If a
Standard does devolve sufficiently from some requisite form, one can in
that environment also choose to continue to stay within the previous
Standard and generally there are toolsets that conform although they may
also eventually be sunsetted by vendors.

But, of course, all that is simply an essay...

--
First  |  Prev  | 
Pages: 1 2
Prev: draw a game board
Next: Posting Code to Matlab Central