Slashdot Mirror


MATLAB Can't Manipulate 64-Bit Integers

An anonymous reader writes "MATLAB, an important package of mathematical software heavily used in industry and academia, has had support for 64-bit machines for several years now. However, the MATLAB developers still haven't gotten around to implementing even basic arithmetic operations for 64-bit integers. Attempting to add, divide, subtract, or multiply two 64-bit integers will result in an error message saying that the corresponding method does not exist. As one commentator put it, 'What is the point of having numerical data types that can't be manipulated?'" The post notes that the free MATLAB clone GNU Octave deals with 64-bit integers just fine.

334 comments

  1. So... by Anonymous Coward · · Score: 5, Insightful

    How is this news?

    1. Re:So... by DarkKnightRadick · · Score: 1

      It's news for nerds?

      --
      "There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
    2. Re:So... by __aaclcg7560 · · Score: 2, Insightful

      I will give you a numerically precise answer... DANGER, WILL ROBINSON, DANGER!

    3. Re:So... by Anonymous Coward · · Score: 0

      How is your post a comment?

    4. Re:So... by Anonymous Coward · · Score: 0

      Exactly.

      It's been a long time since I touched matlab, but if I recall correctly, barely anything worked at all if you weren't using doubles as the data type.

    5. Re:So... by Revotron · · Score: 2, Interesting

      Exactly.

      Anyone who's used MATLAB in academia should know this by now.

      In one of my undergraduate courses we were tasked with creating a new method to find pi. In the final stages, our accuracy was severely crippled by MATLAB's failure to handle some extremely long numbers.

      Ironically, Wolfram Alpha was our savior.

    6. Re:So... by fatp · · Score: 2, Funny

      Octave has serious compatibility problem with MATLAB when dealing with 64-bit integers?

    7. Re:So... by Anonymous Coward · · Score: 0

      How is this news?

      You're right, I was hoping something more like... "MATLAB becomes discontinued use in Universities, and students rejoice" kind of thing... But so far it's just what it seems and what it seems is another year to use MATLAB :(

    8. Re:So... by brufleth · · Score: 1

      I AM a Matlab user and I do not care... Not even a little bit.

    9. Re:So... by Anonymous Coward · · Score: 0

      It isn't news.

      Seems to be the norm these days of OSS/FOSS/FLOSS advocacy without always fact-checking the posted story. Reporting like this--when the library is actually available as download--that doesn't always matter.

    10. Re:So... by mschaffer · · Score: 1

      I have to agree that this is not breaking news, but it is good to let people know that Octave has this functionality.

    11. Re:So... by Trepidity · · Score: 1

      Wolfram Alpha's math stuff is basically a wrapper around Mathematica, which is more standard anyway when doing math stuff like computing Pi. MATLAB is popular for things like engineering simulations, not number theory.

  2. Negative Slashvertisment? by XPeter · · Score: 2, Funny

    Am I missing something here?

    --
    "The difference between genius and stupidity is that genius has it's limits" - Albert Einstein
    1. Re:Negative Slashvertisment? by bkpark · · Score: 1

      No, it is a Slashvertisment, just for GNU Octave, rather than MATLAB.

    2. Re:Negative Slashvertisment? by mgblst · · Score: 5, Funny

      Slashdot are going after the Yelp model. Looks like MATLAB hasn't been keeping up with their payments. Would hate for something to happen to all those great slashdot stories about you guys lately.

    3. Re:Negative Slashvertisment? by linhares · · Score: 1

      oh god, lol

  3. Answer by girlintraining · · Score: 2, Insightful

    What is the point of having numerical data types that can't be manipulated?

    So they can charge more for the upgrade?

    --
    #fuckbeta #iamslashdot #dicemustdie
  4. Re:Yes but Octave by Mitchell314 · · Score: 1

    You mean a TUI? There's more to it than pretty windows.

    --
    I read TFA and all I got was this lousy cookie
  5. what about by Anonymous Coward · · Score: 0

    maple 13?

  6. It's not that big of deal by Anonymous Coward · · Score: 2, Informative

    Given that many values used in calculations are enormous, potentially thousands of bits long, 32 bits is quite sufficient. So long in fact, they can only be stated as 'strings' of integers. So much for different data types!

    The concern should be the amount of time required to complete a calculation which MATLAB is very good at. I'd guess MATLAB is optimized for 32 bit. What is to be gained by rewriting everything for 64 bit?

    So long as all calculations are done in a timely manner.

    1. Re:It's not that big of deal by wizardforce · · Score: 3, Informative

      If you're a physicist and you wanted to do calculations that involved a few coulombs of charge worth of electrons, MATLAB would throw out an error as this mathematical operation in particular happens to require the calculation of a ~64 bit integer and not be terribly unreasonable.

      --
      Sigs are too short to say anything truly profound so read the above post instead.
    2. Re:It's not that big of deal by seeker_1us · · Score: 3, Insightful

      Yes it is. People who do the kind of hardcore math that MATLAB is good at are the ones who actually need 64 bit computing.

    3. Re:It's not that big of deal by blai · · Score: 1

      Suppose one of the hardcore people you're talking about can code up a 64-bit arithmetic library that overloads existing arithmetic functions, then share said library with the rest of us?

      --
      In soviet Russia, God creates you!
    4. Re:It's not that big of deal by Daniel+Dvorkin · · Score: 0

      The purpose of establishing an int64 data type is to allow direct manipulation, without resort to such hackery, of integers which are larger than 32 bits but smaller than 64 bits. You may have noticed that there are lot of such integers ... very nearly 2^64 of them, in fact.

      If MATLAB is optimized for 32-bit integer arithmetic, then maybe it's time to change that?

      By your logic, we wouldn't need any integer type longer than 2 bits. You could certainly design an integer arithmetic scheme on that basis, but I doubt you'd want to.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    5. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      What is to be gained by rewriting everything for 64 bit?

      Supporting arithmetic on 64-bit numeric types doesn't require "rewriting everything" (unless the code is really really really badly structured).

    6. Re:It's not that big of deal by Anonymous Coward · · Score: 3, Insightful

      Yes it is. People who do the kind of hardcore math that MATLAB is good at are the ones who actually need 64 bit computing.

      Surprisingly, not all that often. People who work with very sensitive systems (chaotic one in particular) or VERY precise data need 64 bit precision, but for 98% of everyone else, it's just not necessary. Anyone doing really advanced work is going to use a supercomputer, for obvious reasons.

      MATLAB's largest audience is engineers, although applied mathematicians and physicists use it often, just not nearly in equal numbers with engineers (who also outnumber the others greatly). Given that engineers work with real data, which never has more than 6 digits of accuracy anyway (3 is more realistic), the push for higher precision just isn't there.

      It's one reason MATLAB doesn't have the greatest 64-bit support: there's no real demand for it, yet. The few who need it can just as easily work in C++, since all MATLAB really is is a collection of routines with a nice interface, much easier plotting/graphic commands, and a nice set of help files.

      For reference, I've had 64 bit computing readily available to me for...my entire career, and I've never once NEEDED it, despite being an applied mathematician.

    7. Re:It's not that big of deal by zippthorne · · Score: 3, Interesting

      Seems like a lot of effort. You can always use the c interface (which itself is weird, considering matlab's roots in fortran...) but then you'd have to learn c. Matlab is a tool for physicists and engineers, not computer scientists. They don't necessarily want to take the time to learn c, or they'd have done that. Some do, anyway, of course, but usually what they produce will be one off functions for a specific goal, not entire libraries suitable for sharing.

      Frankly, even equally worrisome is that Matlab doesn't appear to take advantage of GPGPU yet. The concept has been around for over half a decade, and I'd have expected the MAtrix LABoratory to jump on the bandwagon quicker than most. It's a game changer in their core competency, after all.

      --
      Can you be Even More Awesome?!
    8. Re:It's not that big of deal by robot256 · · Score: 5, Insightful

      If you're a physicist using MATLAB, then you are (a) using floating point arithmetic, not huge integers and (b) more likely to be using Mathematica than MATLAB in the first place. Huge integers are more useful in computer science, doing encryption and data processing and such, than in physical simulations. Says the EE/Physics guy with no background in CS.

    9. Re:It's not that big of deal by Jeffrey+Baker · · Score: 3, Informative

      I think you're right, and I see the same kind of thinking when I ask about 64-bit integers in R. The people who use R are statisticians who can't imagine why a double isn't close enough. The people who complain about it are the computer programmers who are trying to use 64-bit exact fields to merge two datasets etc.

    10. Re:It's not that big of deal by Trepidity · · Score: 1

      By your logic, we wouldn't need any integer type longer than 2 bits. You could certainly design an integer arithmetic scheme on that basis, but I doubt you'd want to.

      I think the argument is more that, in practice, 32 bits is a decent sweet spot for the changeover from native ints to arbitrary-precision bigints (whereas 2 bits is not a sweet spot). Are there that many cases where someone needs integers between 32 and 64 bits, but doesn't need to account for the possibility of >64-bit integers, and therefore doesn't need to use routines that can handle arbitrary-size integers? If there were a lot of such cases, changing from 32- to 64-bit as the switchover point from native to bigint arithmetic would be justified. But the guess is that those cases aren't common, at least among matlab users.

    11. Re:It's not that big of deal by coolsnowmen · · Score: 2, Insightful

      numerical computations that are highly optimized for speed on computers do not always allow for variable sized numbers. The more you assume about a problem, the faster you can make the algorithm to solve it. I'm betting that there are many optimized numerical algorithms in matlab that use underlying knowledge of the data structure itself to solve it. It is a trade off speed vs scalability/generality.

    12. Re:It's not that big of deal by spikenerd · · Score: 2, Informative

      You mean like Octave?

    13. Re:It's not that big of deal by martin-boundary · · Score: 2, Insightful
      Huh? How did physicists manage before the era of 64 bit computing, then?

      This is ridiculous, the first thing any self respecting physicist will do is change the units of the problem.

    14. Re:It's not that big of deal by Nutria · · Score: 2, Informative

      But fp is, by nature, slightly imprecise. Really, Really Small numbers would get lost in the noise.

      --
      "I don't know, therefore Aliens" Wafflebox1
    15. Re:It's not that big of deal by nedlohs · · Score: 2, Insightful

      1. MATLAB doesn't support 64 bit ints
      2. People still us MATLAB.

      Thus, there is a group of people "who do the kind of hardcore math that MATLAB is good at" who don't need 64 bit computing.

    16. Re:It's not that big of deal by Anonymous Coward · · Score: 1, Interesting

      Or they could be using it for signal processing and modeling. And yes I have seen it used for that.

      Says the EE guy

    17. Re:It's not that big of deal by orkysoft · · Score: 2, Informative

      No, they don't. Read the article posted earlier today for more information.

      --

      I suffer from attention surplus disorder.
    18. Re:It's not that big of deal by Jah-Wren+Ryel · · Score: 2, Insightful

      Frankly, even equally worrisome is that Matlab doesn't appear to take advantage of GPGPU yet. The concept has been around for over half a decade, and I'd have expected the MAtrix LABoratory to jump on the bandwagon quicker than most. It's a game changer in their core competency, after all.

      I haven't looked at MATLAB+GPGPU recently, but back in the olden days before CUDA and OpenCL there were a handful of 3rd party matlab extensions that made use of GPGPU. Nothing official, but still plenty functional in their limited areas of implementation. The company's laziness with respect to GPGPU is no surprise (see my other rant in this story's discussion) and the fact that others have put together limited GPU-based extensions has probably further reduced the pressure for them to do anything in that area.

      --
      When information is power, privacy is freedom.
    19. Re:It's not that big of deal by Rufus211 · · Score: 1

      Frankly, even equally worrisome is that Matlab doesn't appear to take advantage of GPGPU yet. The concept has been around for over half a decade, and I'd have expected the MAtrix LABoratory to jump on the bandwagon quicker than most. It's a game changer in their core competency, after all.

      I guess it depends on the exact question you're asking. A google search for "matlab gpgpu" shows that there are lots of ways to take advantage of GPGPU (NVidia's CUDA specifically) from within Matlab.
      MATLAB plug-in for CUDA
      AccelerEyes
      GPUmat

      However AFAIK there's no plan for native support of GPGPU within Matlab. It's kind of ridiculous that there's not considering the 10x speedup frequently reported by using the above tools.

    20. Re:It's not that big of deal by Flavio · · Score: 5, Informative

      You can always use the c interface (which itself is weird, considering matlab's roots in fortran...)

      The reason the C interface is weird is because MATLAB stores multidimensional arrays in column-major order, like Fortran. C, on the other hand, uses row-major order. However, if you work with linear algebra, then you'll appreciate the column-major layout, because it coincides with the order returned by the vec operator (which is used all the time in computational linear algebra, and stacks the columns of a matrix).

      but then you'd have to learn c. Matlab is a tool for physicists and engineers, not computer scientists. They don't necessarily want to take the time to learn c, or they'd have done that. Some do, anyway, of course, but usually what they produce will be one off functions for a specific goal, not entire libraries suitable for sharing.

      I work with digital signal processing and use MATLAB almost on a daily basis. The reason DSP engineers use MATLAB is not because they don't know or don't want to know C. In fact, a good DSP engineer must be very competent at writing clear and efficient C code, because that's what he needs to actually implement algorithms on hardware. Modern high performance DSPs are so complex that coding things in assembly is completely out of the question.

      The reason MATLAB is so valuable is that it allows one to prototype things extremely fast with minimal performance loss (if you know what you're doing). Of course you won't have a MATLAB environment running on a DSP, so you'll eventually have to write the C code. But since most of my time is spent developing algorithms instead of actually implementing them, MATLAB lets me be much more productive.

    21. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      If you're a physicist using MATLAB, then you are... more likely to be using Mathematica than MATLAB in the first place.

      On the principle that if you are using MATLAB it's certain that you're using MATLAB, doesn't that entail a greater than 100% probability that you're using Mathematica?

    22. Re:It's not that big of deal by 644bd346996 · · Score: 2, Informative

      64-bit computing isn't about having 64-bit ints. It's about having 64-bit pointers.

    23. Re:It's not that big of deal by forand · · Score: 2, Interesting

      Except when it comes to packing more data into a limited bandwidth data stream. It is often the case that bit information is encoded into large integers then unpacked when analysis/reconstruction is done for instruments where data bandwidths are limited (e.g. the South Pole and satellite missions). That said most groups working in those environments do not use MATLAB.

    24. Re:It's not that big of deal by gumbi+west · · Score: 1

      I don't understand. Why doesn't your RDBMS take care of that?

      Alternately, couldn't you just split it in two columns and merge on A and B instead of just A?

      For the record, IAAS

    25. Re:It's not that big of deal by Supergibbs · · Score: 2, Insightful

      Sweet spot? Could it have been that a majority of computers were 32-bit? Ya sure, 64 bit computing has been around a while but it was mostly specialized servers. Now that most new computers are x64 compatible it would make sense to optimize for 64-bit. The many integers between 32 and 64 bits would be processed much faster and couldn't the bigint routines take advantage as well? I am not sure how big int work other than they use strings for storage. I assume they use clever math to break the calculations up and then piece it back together, so could 64bit reduce the number of calculations?

      --
      First post! (just in case I am...)
    26. Re:It's not that big of deal by KibibyteBrain · · Score: 4, Insightful

      Umm, you realize you can do math on greater than 32 bits values in Matlab, just not using the 64-bit platforms's ability to natively handle 64 bit datatypes. After all, I can do make on 64-bit values on an 8-bit micro-controller just fine, it will just take more than a few instructions.
      And as stated before, this matters little as it is a performance issue, and matlab still offers the best performance of its class, even vs. those who do have this feature.

    27. Re:It's not that big of deal by Jeffrey+Baker · · Score: 1

      What do you expect the RDBMS to do in this case? It returns a 64-bit integer value. Then R reads it and silently casts it to a double, which silently swizzles the low 12 bits.

      Since YAAS, should I stand back?

    28. Re:It's not that big of deal by ceoyoyo · · Score: 1

      You better not be crunching numbers that size in MatLab.

    29. Re:It's not that big of deal by nedlohs · · Score: 1

      Not in this context it isn't. Or I guess the post I originally applied to just didn't make any sense, that'd work too.

    30. Re:It's not that big of deal by Sir_Lewk · · Score: 1

      Changing units is meaningless, accuracy is what matters.

      Of course, I really doubt anyone has numbers so accurate they need 64 bits to store them.

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    31. Re:It's not that big of deal by gumbi+west · · Score: 1

      Hmm, a double has 64 bits, where do the last 12 go? You said, "The people who complain about it are the computer programmers who are trying to use 64-bit exact fields to merge two datasets etc." I'd expect the RDBMS to merge the two datasets.

      If you really want it mast two columns, one that is j mod 2^31 and j/2^31 (which is an annoying hack, I'll admit).

      BTW, S stood for statistician, I was trying to explain why I didn't get your complaint.

    32. Re:It's not that big of deal by Drencrom · · Score: 2, Insightful

      Yes, they do. From the article you mention

      "If you really need your results to add up exactly, especially when you work with money: use a special decimal datatype"

      Is is true that the GP mentions small numbers and fp is in fact more precise with small numbers, but when the numbers get larger the difference between two representable fp numbers gets bigger also.

    33. Re:It's not that big of deal by martin-boundary · · Score: 2, Insightful

      Units matter if you want to ensure accuracy (in floating point). You don't want to indiscriminately combine extremely small numbers with extremely large numbers in a formula, if you can help it.

    34. Re:It's not that big of deal by hazem · · Score: 3, Insightful

      Hmm, a double has 64 bits, where do the last 12 go?

      A 64 bit integer will lose precision when converted to a 64 bit double because the double has to use some of the bits for the exponent and the rest go the mantissa. If 12 bits go to the exponent, then your 64 bit integer now has to be expressed as a 52 bit integer, raised to some power. There are (I think) 2^11 distinct numbers that would have the same representation as a double.

    35. Re:It's not that big of deal by Jeffrey+Baker · · Score: 1

      Ah, I should have been more precise and said "assign" instead of "cast". R assigns a 64-bit int to a double, and therefore loses precision in certain cases.

      Workarounds like those you mention are what I wound up using. I did more work outside R and less inside R. These days, for many projects I no do almost nothing in R.

    36. Re:It's not that big of deal by _merlin · · Score: 2, Informative

      You don't even have to write C when you want to get it on your DSP - MATLAB Real-Time Workshop can generate the C code for many popular DSPs.

    37. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      People who do the kind of hardcore math that MATLAB is good at are the ones who actually need 64 bit computing.

      No, people who do the hardcore math that MATLAB is good at use double precision. Honestly, have any of you ever even used MATLAB? The preferred data type is double, and everyone knows that. Heck, just read the help page for int64():

      The INT64 class is primarily meant to be used to store integer values. Hence most operations that manipulate arrays without changing their elements are defined (examples are RESHAPE, SIZE, the relational operators, logical operators, subscripted assignment and subscripted reference). No math operations are defined for the INT64.

      If "no math operations are defined," why is anyone surprised when subtraction fails?

      -JS

    38. Re:It's not that big of deal by jstott · · Score: 1

      If MATLAB is optimized for 32-bit integer arithmetic, then maybe it's time to change that?

      Have you ever even used Matlab? Integer data types are there for convenience. The natural data type is double, because any engineer or physicist worth their salary spends most of their life calculating real-valued variables.

      --
      Vanity of vanities, all is vanity...
    39. Re:It's not that big of deal by Sir_Sri · · Score: 1

      the matlab guys probably don't want to waste the time effort and money building production tools for a software/hardware standard that may not exist two years from now, and may, between when they starting writing and when they finish be completely different. I did my MSc as a project in CUDA. It's not bad, it's too new for a lot of businesses though. GPU acceleration is a RIGHT NOW kind of thing, that's not bad, but a year from now they may have a completely new, completely different API (which may or may not actually stick around and be supported by other vendors, which is the question with DX11 compute stuff and OpenCL). Hiring a bunch of CUDA specialists is an expensive venture with too much risk I bet. Now jumping on the DX11 DirectCompute or the OpenCl standard doesn't seem out of the question, but, again, a year from now they might be completely different. Also NVIDIA just launched dx11 parts, 6 months of ATI parts is hardly enough to say they should necessarily have this right now.

    40. Re:It's not that big of deal by gumbi+west · · Score: 1

      Ah, I see. The data could be stored, but it is cast "correctly." Well, right tool for the job, I guess.

    41. Re:It's not that big of deal by bennomatic · · Score: 1

      No, FP handles really small numbers just fine. It's the really large numbers that get rounding errors.

      --
      The CB App. What's your 20?
    42. Re:It's not that big of deal by Anonymous Coward · · Score: 1, Informative

      No, Octave is not comparable to Matlab unless all you do is basic operations. Is there a real-time workshop, Simulink, all the toolkits, etc. for Octave?

    43. Re:It's not that big of deal by mgbastard · · Score: 1

      But fp is, by nature, slightly imprecise. Really, Really Small numbers would get lost in the noise.

      No, they don't. Read the article posted earlier today for more information.

      Now wait, you should know full well that "really, really" small numbers in single precision that are smaller than 0.00000x10^-126 are going to get lost.

      --
      Anyone seen my low uid? last seen 10 years ago while panning the #@$# out of Taco's 'web based discussion system'
    44. Re:It's not that big of deal by Mr+Z · · Score: 2, Informative

      The reason you need the decimal datatype is not because "small numbers get lost in the noise." It's because paper-driven accounting was always done in decimal, and so to keep the numbers matching, the computer needs to round in the same way someone doing it on pencil and paper would do it. It's about compatible rounding and representation, not the size of "ulp" (Units of the Last Place) on any given calculation. A 32-bit decimal float is less precise and has less dynamic range than a 32-bit binary float. But, arithmetic with the decimal float will match the hand arithmetic and the binary one won't, since the inputs come pre-rounded to convenient boundaries in the base-10 world.

      Anyway, small numbers do get lost in the noise with floating point if you ever add or subtract them from large numbers.

    45. Re:It's not that big of deal by bennomatic · · Score: 1

      I remember a friend of mine--a math PhD--told me about how he had proudly memorized the first thousand digits of pi as a kid, since he loved math. Then as he got older, he realized how ridiculous that was, because the accuracy was well beyond what anyone would need.

      What he said, roughly, was this: 3.14 is good enough for most math problems you'll get through your undergraduate career. 3.1416 is good enough to calculate the circumference of the earth to within a few inches. 3.141593 is good enough to calculate the circumference of the Milky Way to within a few meters. 3.1415926535 is good enough to calculate the circumference of the known universe to within a few kilometers.

      Granted, this may have been hyperbole, but the point is, there's accuracy and there's accuracy, and if you don't really know what you need, you're wasting a lot of time chasing perfection.

      --
      The CB App. What's your 20?
    46. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      "There are (I think) 2^11 distinct numbers that would have the same representation as a double."

      which is too stupid to do. So they conserve bites by having a 1 before the significant, so that (in base 2) .01 exp 0 (or 1.01) is different from .1 exp -1 (or 0.11)

    47. Re:It's not that big of deal by linhares · · Score: 1

      Of course, I really doubt anyone has numbers so accurate they need 64 bits to store them.

      parent is +5 funny

    48. Re:It's not that big of deal by smallfries · · Score: 2, Funny

      If you're a physicist using MATLAB, then you are ... (b) more likely to be using Mathematica than MATLAB in the first place.

      O RLY?

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    49. Re:It's not that big of deal by 91degrees · · Score: 1

      Not quite. The diameter of the earth is a few hundred feet out at that precision. The milky Way diameter is millions of miles out.

    50. Re:It's not that big of deal by HuguesT · · Score: 1

      Your point is taken, but you are a bit off. To get the circumference of the Milky Way with meter accuracy, assuming 150kLY as the radius, you need 22 digits of Pi by my reckoning.

      please check : 150.000 Y * (365*24*60*60) second * 300.000.000 m/s = 1.41912 e+21 m, and so the circumference of the MW is close do 10^22 m.

      I seem to recall that to get the circumference of the visible universe to the precision of an Angstrom you need about 80 digits.

    51. Re:It's not that big of deal by markovg · · Score: 1

      If you're a physicist and you need something MATLAB can't do, you're more likely using Python and Numpy.

      http://www.scipy.org/

      Says another Physics guy ...

    52. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      Matlab barely has support for 32 bit integers, or really typing at all. It supports 'numbers'. Explicit type support is really meant for things like loading data from foreign file formats. The purpose of 64-bit support is large memory support, not high precision integer arithmetic.

    53. Re:It's not that big of deal by Hognoxious · · Score: 2, Informative

      The relative precision is the same over all numbers, because the mantissa is a fixed size. The bits that fall off it might represent billions or billionths, but that depends on the exponent and so the same scaling factor applies to the number and the error.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    54. Re:It's not that big of deal by Rockoon · · Score: 1

      in the real world, 64-bit computing is also about more registers and 64-bit integers

      --
      "His name was James Damore."
    55. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      I think though, to get it within the margin of error, 3.14 would be a close enough approximation.

    56. Re:It's not that big of deal by tibit · · Score: 1

      This doesn't matter much. All they have to implement is a bunch of alternatives for commonly done "big" matrix operations. That's be the first step. It doesn't require discarding any code, and it would help in a lot of common cases -- matrix algebra on big matrices is kinda popular. The could also do a bunch of signal processing stuff that way.

      The real hard work will be to get matlab to compile the code to run on the gpu -- so that not just certain prepackaged algorithms will run fast, but also your own code. And that's really, really hard.

      --
      A successful API design takes a mixture of software design and pedagogy.
    57. Re:It's not that big of deal by tepples · · Score: 3, Informative

      You don't even have to write C when you want to get it on your DSP

      ...unless you want it to be efficient. See someone else's post.

    58. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      As someone who does "hardcore math" (a PhD working for LM Skunkworks) I can report the only time I could have used 64 bit integers (enumerating all pseudo-extreme points of a set of very high-dimensional integer-valued vectors), a small-scale test of the algorithm showed it to be 30-40 db (stet!) slower than the algorithm coded in C. (Matlab's function calls are slow, and the algorithm was almost all recursion with little calculation). That said, I love Matlab - couldn't live without it, but it's a number/matrix grinder, not a language for semi-numerical algorithms, thus little use for 64 bit integers.

    59. Re:It's not that big of deal by Anonymous Coward · · Score: 0
    60. Re:It's not that big of deal by Tetsujin · · Score: 1

      No math operations are defined for the INT64.

      If "no math operations are defined," why is anyone surprised when subtraction fails?

      -JS

      If one is reading the manual, then no, it's not surprising that you can't subtract two INT64's.
      If one is applying the same expectations to Matlab that they'd apply to other software, then yes, it is surprising that they'd support a particular numerical representation but not give you facilities to actually use it.

      I think I understand the basic reasoning behind the decision - MATLAB isn't a tool for working in the integer space, it's a tool for working in the real and complex numerical spaces... But still, there was a point in time when I simply noticed Matlab supported integer data types and thought I'd use them. When I wrote a data importer lib for the Matlab environment and thought I'd be clever and represent integer data with the integer types - I learned my lesson. Don't. MATLAB can't do anything useful with integer types except convert them to double, so it's a lot more useful to just convert them to double in the first place.

      --
      Bow-ties are cool.
    61. Re:It's not that big of deal by whizzter · · Score: 1

      No, there is one way to represent every number.

      The mantissa doesn't state a "number", it is the decimal part of 1.xxxxx.

      Say we have a 2 bit mantissa. The mantissa would thus describe the following numbers:
      00 -> 1.00
      01 -> 1.25
      10 -> 1.5
      11 -> 1.75

      When we reach 2 we just increase the exponent instead, This gives the double representation a bigger range.

      For very small numbers there is also a "subnormal" representation in the IEEE standard. This is when the exponent reaches the "smallest" possible value. At this point the mantissa bits represents numbers from "2" to "0" with the smallest exponent.

      If i'm not off my hat right now this is why setting all the bits of a float or double will actually produce a 0, lowest exponent, -> subnormals = actual 0 and no sign(irrelevant in the case of floating point numbers though)

    62. Re:It's not that big of deal by hazem · · Score: 1

      Yes, you're right that there is only one way to represent each real number with a fixed number of bits, but it's a one-way hash... there are an infinite number of number of real numbers that can be represented by each digital representation. If you have 2 bits, 1.001, 1.0001, 1.00001 all have the same binary representation.

      So if you started with 4 bits and then lower that to 2 bits (those other two are being used for something else), you used to have a space divided into 16 possible values that is now only divided into 4 possible values. This means you have to map each of the 16 possible values to one of the 4 possible values.

      If I have a digital display with one digit and it shows 0 - 9 (this is like the lowest exponent you described above). Now I need it to show values up to 90, so I tape a "0" next to the digital display and rework the logic behind the display.

      Where I used to be able to show 0,1,2,3,4,5,6,7,9, those discrete values can now only be shown as either 0 or 1.

      I see how you're describing a variable scheme for allocating bits, but you can't go from a case where all the bits are used to represent integers to a some are the mantissa and some are the exponent and still be able to represent all of those original integers with full fidelity.

    63. Re:It's not that big of deal by _merlin · · Score: 1

      M2C is not the same thing as Real-Time Workshop.

    64. Re:It's not that big of deal by Anonymous Coward · · Score: 0

      Don't be stupid what do you think double precision means?

    65. Re:It's not that big of deal by rseal · · Score: 1

      64-bit values aside, Python outperforms Matlab w.r.t. signal processing applications, and absolutely blows the doors off of Matlab when parsing text ( e.g. data headers). I've tried several languages ( Matlab, Python, Ruby, C/C++, C#, Java, Octave, CUDA, and Sage in the last 2 years). People whole-heartedly believe that Matlab fell from the sky. For most users, you only need to take a look at Matplotlib. If you really want to see Matlab at its absolute worst, take a look at its attempt at Object-Oriented programming; more specifically, GUI programming.

  7. Re:In other news... by Anonymous Coward · · Score: 0

    Only if Steve Jobs hit it with a hammer until it was nonfunctional.

  8. Python's SciPy and NumPy FTW by WeatherGod · · Score: 1

    Another useful alternative is to use SciPy and NumPy packages for Python. Python doesn't have any issues with dealing with long numericals.

    1. Re:Python's SciPy and NumPy FTW by Daniel+Dvorkin · · Score: 2, Insightful

      SciPy/NumPy, R, and Octave are all perfectly good alternatives to MATLAB these days for most work. But there are a lot of people who rely on MATLAB-specific toolboxes. I look forward to the day when proprietary math and stats packages take their place in the bitbucket of computing history, but we're not quite there yet.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    2. Re:Python's SciPy and NumPy FTW by gardyloo · · Score: 1

      MATLAB is often very much faster than SciPy/NumPy at the moment, but the latter programs are very much more capable (and, the vast majority of the time, free). My colleagues use MATLAB; I'm perfectly happy producing better results in Python.

    3. Re:Python's SciPy and NumPy FTW by WeatherGod · · Score: 1

      Amen to that... except the part about R. It and its bastard proprietary brother S+ can also go to the bitbucket as far as I am concerned.

      I am sorry, did my bitterness just come through there?

    4. Re:Python's SciPy and NumPy FTW by Anonymous Coward · · Score: 1, Informative

      This is not true, in my experience. Both MATLAB and Python (numpy/scipy) use the same underlying math libraries. MATLAB often optimized for windows PCs, but numpy/scipy offer the option to optimize for your C64, or whatever, with libraries like ATLAS.

      Plotting (using matplitlib) is also faster, as the backend is separated from the plotting engine.

      Finally, if something is slow, it is much easier to wrap lower level languages such as C or FORTRAN in python, using a number of different packages (SWIG, ctypes, cython, f2py, weave, etc...)

    5. Re:Python's SciPy and NumPy FTW by Daniel+Dvorkin · · Score: 1

      Heh, to each his own, I guess. I mostly work in R these days, and while I admit it's quirky, once you get used to its quirks it's quite a useful langauge. Overall, I'd rather be programming in Python than just about anything else, but in my lines of work (bioinformatics and biostatistics) R provides the best overall combination of features and usability. YMMV, and obviously does in this particular case.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    6. Re:Python's SciPy and NumPy FTW by WeatherGod · · Score: 2
      What I find odd about R/S/S+ was that the ones who tended to learn it better were the begineers who never programed in another language or had limited exposure. People like me who have been exposed to many mainstream languages find it frustrating.

      The professor who taught the course where I had to use S+ told me something along the lines: "It is a language designed by statisticians, of course it will behave randomly!"

    7. Re:Python's SciPy and NumPy FTW by elashish14 · · Score: 1

      Any word on how they compare for speed? I'd be surprised if Python's speeds are remotely comparable to those of Matlab, which is after all, optimized for numeric calculations.

      --
      I have left slashdot and am now on Soylent News. FUCK YOU DICE.
    8. Re:Python's SciPy and NumPy FTW by WeatherGod · · Score: 2, Insightful
      Both Matlab and SciPy/NumPy use the same BLAS/ATLAS backend. So, a well-written Matlab program will be comparable to a well-written Python program in speed. However, Python has Matlab beat on memory usage. Matlab does have an extensively documented language with a very good help system.

      In my personal opinion, I feel that Matlab was too awkward of a language when it came to do anything else besides math. For example, it made it difficult to use when one needed to do string manipulations to figure out what files to load. Meanwhile, Python is a full-fledged language that would allow me to do many supporting tasks for my math related work.

    9. Re:Python's SciPy and NumPy FTW by ceoyoyo · · Score: 1

      MatLab is just fine for engineers to use... until they decide they want to write applications or reusable code. With GUIs. Shudder.

    10. Re:Python's SciPy and NumPy FTW by Aphonia · · Score: 2, Insightful

      Just because they use the same BLAS/ATLAS backend doesn't mean that they'll perform to the same speed - BLAS calls dont have to be done at the same efficiency, or certain common operations which are a chain of calls be implemented in the same manner. A lot of good functions are prewritten for Matlab. It is like saying if I put a Ferrari engine in a Chevy Suburban, it will perform as well as if i put it in a Ferrari.

    11. Re:Python's SciPy and NumPy FTW by Anonymous Coward · · Score: 0

      You think R is bad? Try Stata. Talk about a "language" with quirky rules.

    12. Re:Python's SciPy and NumPy FTW by Harlan879 · · Score: 1

      Incidentally, R does not really support 64-bit integers, either. http://permalink.gmane.org/gmane.comp.lang.r.devel/17281

    13. Re:Python's SciPy and NumPy FTW by Tetsujin · · Score: 1

      This is not true, in my experience. Both MATLAB and Python (numpy/scipy) use the same underlying math libraries. MATLAB often optimized for windows PCs, but numpy/scipy offer the option to optimize for your C64, or whatever, with libraries like ATLAS.

      I believe in source-level portability and all, but even if I could run Python on my C64 I don't think it'd be worth the trouble...

      --
      Bow-ties are cool.
  9. The R program can't do 64 either by Jeffrey+Baker · · Score: 0, Flamebait

    FWIW, GNU R, the freetard knockoff of S, also can't do anything with 64-bit numbers. It stores them in a double, which gives you 52 bits of exact integers and beyond that it's approximate. This can really bite you in the ass if you aren't aware of it ... and it's not documented anywhere except in code. It can be especially bad if you try to read a BIGINT (64-bit integer) value via RODBC, which silently truncates the value to 52 bits.

    1. Re:The R program can't do 64 either by Daniel+Dvorkin · · Score: 1

      R is not a "knockoff of S". It is a free implementation of the S language. S-Plus is a proprietary implementation of that language. Maybe you should read up on the history.

      And ... "freetard"? WTF? If you're identifying this is a F/OSS problem, what's MathWorks' excuse?

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    2. Re:The R program can't do 64 either by NNKK · · Score: 1

      Did you have a point you wanted to make about the subject at hand (*MATLAB*'s support or lack thereof for 64-bit integers), or did you just come here to be offensive?

    3. Re:The R program can't do 64 either by Jeffrey+Baker · · Score: 0

      The point is that when scientists write software they store big numbers in floats because no sane person needs more precision than that. The idea of huge, exact numbers is foreign to physicists and chemists and statisticians. Especially statisticians.

      Only computer programmers and cryptographers need huge, exact integers.

    4. Re:The R program can't do 64 either by Anonymous Coward · · Score: 1, Insightful

      And chip designers. And number theory specialists (not all of them, oh the shock, are cryptographers). In fact, anyone that uses a number as an abstraction and not a physically interpreted quantity.

    5. Re:The R program can't do 64 either by TheLink · · Score: 1

      The Wall Street bunch might need 64 bits to calculate their bonuses and bailouts down the cent :).

      --
    6. Re:The R program can't do 64 either by Anonymous Coward · · Score: 3, Interesting

      GNU R, the freetard knockoff of S...

      "Freetard knockoff?" R overtook S-PLUS several years ago in terms of importance among statisticians. Indeed, it's not just in academia where this freetard knockoff has taken over; I work as a quant at an algorithmic trading hedge fund and we dumped S-PLUS in favour of R four or five years ago.

      Sometimes, just sometimes, the open source implementation actually is better.

    7. Re:The R program can't do 64 either by Anonymous Coward · · Score: 0

      So... why didn't you say that in the first place? I'm guessing because you actually just came here to be offensive.

    8. Re:The R program can't do 64 either by ettlz · · Score: 1

      The idea of huge, exact numbers is foreign to physicists

      Not entirely, sometimes exact arithmetic is useful for quick cross-checks in theoretical physics. And sometimes expressions get churned out with very long, rational coefficients...

  10. A Heavy User's Opinion by TerribleNews · · Score: 5, Insightful

    As someone who uses math quite a lot in academia, I can tell you that I've never noticed the missing operators. I just don't use 64-bit integers. The reason *I* upgraded to 64-bit Matlab is because I kept running up against memory constraints. 64-bit Matlab can allocate much larger arrays. I am sure there are places where it would be convenient to use really big integers but I find it hard to believe that this is really a big headache for anyone; the main improvement with the 64-bit version is a much bigger memory space.

    1. Re:A Heavy User's Opinion by WeatherGod · · Score: 2, Insightful

      That is one of the things that pushed me away from Matlab. I kept on running into memory bounds whenever I tried to do things "the Matlab way" (i.e., no loops, vectorize, etc.). It seems that Matlab liked to copy my arrays all the time when I was going in and out of functions. It seems ridiculous to me that I would have to do things "the bad way" in order to get my work done.

    2. Re:A Heavy User's Opinion by Anonymous Coward · · Score: 0

      The only use I've had for 64-bit integers in MATLAB has been for using camera driver handles between MEX functions (like between initCamera and grabFrame).

    3. Re:A Heavy User's Opinion by drolli · · Score: 1

      Well. did you write to these matrices? I guess you are aware that matlab has something like copy on write - which can lead to funny behaviours. I also find the lack of pass by reference a little disturebing to say the least, but i guess the idea behind is to keeep i teasy to debug

    4. Re:A Heavy User's Opinion by xtracto · · Score: 1

      Ahh... I see the memory issue is a problem of closed source as well...

      There is a live bug in R which prevents using working with large datasets. I came across this problem after trying to import some SPSS census data we bought for research :(
       

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    5. Re:A Heavy User's Opinion by Anonymous Coward · · Score: 0

      I no longer use matlab very often, but both as a student and as a researcher, the SOP for missing matlab/$environment features was to

      (a) check if somebody solved the problem already
      (b) code around it
      (c) switch environment

      Complaining about e.g. missing 64-bit integer operations, hoping for an updated matlab version simply does not fit any of the available time frames: as a student you usually have deadlines that are way earlier than any possible updated matlab release. As a researcher, you probably still can't spend that much time sitting on your hands and waiting for a new version of $software.

    6. Re:A Heavy User's Opinion by hAckz0r · · Score: 1

      Matlab utilizes a copy-on-write algorithm, so the overhead is not as bad as one might first think if you understand the principals. Just because you have to explicitly pass the matrix into and out of a function does not mean that the whole thing was copied. It is only copied if you changed its data within the function. In Matlab, writing lots of little functions that allow changes to a matrix would be 'the bad way' to do things, so one must carefully think about what functions should and should not have operations that permute the data passed into it if you want both speed of execution and lower memory requirements.

    7. Re:A Heavy User's Opinion by EaglemanBSA · · Score: 1

      I do quite a bit of intense numerical analysis and I rarely get to the point where I need 64-bit operations. I've encountered it before, but only in special cases (very stiff ODE's, for example). Personally, I use FreeMat (an open-source MATLAB clone - its environment is much more like MATLAB's than octave, far as I'm concerned). FreeMat's 64-bit build handles extremely large datasets as well, and that's exactly what drove me to use its 64-bit build as well.

      --
      Quiz: True or False -- On a scale of 1 to 10, what is your middle name?
    8. Re:A Heavy User's Opinion by EaglemanBSA · · Score: 1

      I know I shouldn't self-reply, but...FreeMat also has the 64-bit functionalities under discussion.

      --
      Quiz: True or False -- On a scale of 1 to 10, what is your middle name?
    9. Re:A Heavy User's Opinion by elrous0 · · Score: 1

      No loops?!?!? What kind of communist heathen satan-worshiper would invent such a language?

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    10. Re:A Heavy User's Opinion by WeatherGod · · Score: 1

      Exactly, for accessing purposes, this isn't an issue. However, I find that NumPy's memory management approach is much smarter than Matlab's, and so that, along with other reasons, pushed me away from Matlab.

    11. Re:A Heavy User's Opinion by WeatherGod · · Score: 1

      Matlab is a pure scripting language, therefore, the parser would have to re-evaluate the body of a loop at each iteration (although, I think the latest version of Matlab might be using some sort of JIT-like parser to improve things).

    12. Re:A Heavy User's Opinion by WeatherGod · · Score: 1

      Bingo, that was the issue I had to deal with. I had to upgrade some code to deal with a larger input dataset. Untangling the code to reduce the number of copy-on-write actions was not fun.

    13. Re:A Heavy User's Opinion by drolli · · Score: 1

      The funny thing is that the real processor load happens at unexpected places.....

    14. Re:A Heavy User's Opinion by WeatherGod · · Score: 1

      True, but that wasn't the main issue. The program was taking up too much memory because it kept creating copies of the arrays.

  11. #TODO: by lawpoop · · Score: 1

    #TODO: finish up all operations for 64-bit integers.

    --
    Computers are useless. They can only give you answers.
    -- Pablo Picasso
    1. Re:#TODO: by cibyr · · Score: 1

      No, it's MATLAB. The comment character is %

      --
      It's not exactly rocket surgery.
    2. Re:#TODO: by MichaelSmith · · Score: 0, Troll

      So how do you type a percent? Let me guess: you just tape a lots of pound signs together.

    3. Re:#TODO: by Tetsujin · · Score: 1

      So how do you type a percent? Let me guess: you just tape a lots of pound signs together.

      Do people actually use percentages in Matlab? Do they need to?

      --
      Bow-ties are cool.
  12. Who uses integers in MATLAB? by dissipative_struct · · Score: 5, Informative

    MATLAB isn't strongly typed, and by default variables are floating-point (I think 64-bit is the standard if type isn't specified). Makes sense for scientific programming. You need to go out of your way to use integer types in MATLAB, and the only reason I've ever had to do it is when trying to convert MATLAB scripts to C code to run on fixed-point processors. I do think that not supporting 64-bit integer operations is an oversight but I don't think it affects the vast majority of MATLAB users.

    1. Re:Who uses integers in MATLAB? by coolsnowmen · · Score: 2, Informative

      yep, really the only reason they exist is for converting numbers for input and output, not for doing any computations in matlab with them.

    2. Re:Who uses integers in MATLAB? by ClickOnThis · · Score: 2, Informative

      You need to go out of your way to use integer types in MATLAB

      ...and this is a good thing, when you consider that Matlab demotes float or double values to int when you mix them with ints. I was amazed when I discovered this. It's the only language I know with this evil behaviour.

      There aren't may reasons you'd need integers in Matlab. Some that come to mind: (1) if you need more digits of precision than float or double offer, and you don't need the dynamic range of the exponents; (2) if you need to manipulate the data as bits; (3) if they're more computationally efficient for the problem you're solving; or (4) if want to save memory (e.g., with 16-bit ints.)

      --
      If it weren't for deadlines, nothing would be late.
    3. Re:Who uses integers in MATLAB? by pjabardo · · Score: 2, Informative

      Actually, if you you are working with very large data sets you might need to index using 64 bits. A friend of mine who knows very little programming was using matlab to compute all eigenvalues of a large operator. It was all working fine until he started to use his scripts on larger problems. At the time, a couple of years ago I had to recompile octave to use 64 bits as the default integer and the program just worked fine with the larger data-sets. The 64 bits integer was available as a configure option so I guess somebody (other than me and my friend) found this useful.

    4. Re:Who uses integers in MATLAB? by rseal · · Score: 1

      Matlab isn't strongly typed? That's the understatement of the year. You've never seen the damage an Engineer can do until you give him free reigns on a copy of Matlab. I'm convinced that they no longer teach basic programming in the Universities. I've seen the code to prove it.

  13. N bits ought to be enough for anybody, where N=32 by davidwr · · Score: 1

    Obligatory.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  14. Not that big a deal by usul294 · · Score: 3, Insightful

    MATLAB does most everything with doubles, int and float formats are really only there when dealing with input/output to files. If i put A = 1 into a command line, its put in memory as a double. I use MATLAB most of my working day for signal processing algorithim design, and I don't think I've ever needed the precision of a 64 bit integer. Numbers bigger than a 32 bit integer can handle pop up from time to time, but never with more precision than a double provides.

    1. Re:Not that big a deal by Anonymous Coward · · Score: 0

      Yea, this is not news. Another kdawson foot-in-mouth posting, lowering the level of intellectual discourse here.

      I've been using MATLAB extensively for about 15 years now, since working on my PhD dissertation. Non-doubles are really only useful when (a) importing data from other sources where they are specified in non-double format or (b) saving data to disk where the values are limited resolution and space is an issue.

    2. Re:Not that big a deal by Nivag064 · · Score: 1

      Have you tried using sage? http://www.sagemath.org/ [...] Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface. [...]

  15. use the mex api by siliconwafer · · Score: 1

    Using the MEX API it is possible to implement operators for 64 bit integers in MATLAB. They aren't provided by default but implementing your own is quite trivial.

    1. Re:use the mex api by coolsnowmen · · Score: 1

      I had no idea you could overload operators in matlab until I looked it up (thanks to you). I used to consider myself a matlab guru...now I know I am.

    2. Re:use the mex api by msuarezalvarez · · Score: 1

      gurus already knew that, you know...

  16. Commercial software lags... by straponego · · Score: 1, Interesting

    For some reason commercial software usually seems to lag worst on the 64 bit transition. Windows and OSX lagged Linux, Java and Flash were the last bits on my Linux systems to go 64 bit, etc. They act as if 64 bit is a fad, and people will soon come to their senses and revert to 32.

    1. Re:Commercial software lags... by larkost · · Score: 1

      Ya, immagine that, they acted like it actually took work and thinking to completely go through a 15+ year-old architecture and make sure that every layer is 64-bit clean. And they actually though that some of their developer time should go to improving areas of their OS's that actually matter for 95%+ of their audiences first...

      With the excepton of Intel's x86 instruction set hobbling their processors, and Windows only recognizing 3GiB of RAM (then subtract the address space for your video memory), or most Intel Macs only recogising 4 GiB (also subtracting video memory, but this is a hardware limitation), 64bit OSs have been a non-event for most consumers.

      People are not going to revert, but we have just come to the point now that most computers ship with enough memory that 64bit addressing even makes any difference system-wide.

    2. Re:Commercial software lags... by imikedaman · · Score: 1

      Hate to break it to you, but Java and Flash taking so long to go 64-bit on Linux has less to do with them being commercial software and more to do with the relative irrelevance of the OS. Also, MATLAB beat GNU Octave to a 64-bit version by 18 months.

    3. Re:Commercial software lags... by Anonymous Coward · · Score: 0

      For some reason commercial software usually seems to lag worst on the 64 bit transition

      Commercial software, the iceberg of Itanium. It will either melt to the oblivion of obsolesce or sink an unfortunate chip of doom.

    4. Re:Commercial software lags... by yuhong · · Score: 1

      Also, both Java and Flash have JITs, and these are not easy to port to 64-bit because all of the differences between 32-bit x86 and 64-bit x86_64 assembly/object code has to be accounted for.

    5. Re:Commercial software lags... by Anonymous Coward · · Score: 1, Insightful

      For some reason commercial software usually seems to lag worst on the 64 bit transition. Windows and OSX lagged Linux, Java and Flash were the last bits on my Linux systems to go 64 bit, etc. They act as if 64 bit is a fad, and people will soon come to their senses and revert to 32.

      *Solaris and DEC users shake their heads*

    6. Re:Commercial software lags... by ducomputergeek · · Score: 1

      I remember seeing this in the late 1990's where we had some vector math or particle simulation software that we used UltraSparcs for the number crunching, but the program's interface ran like molasses on UltraSparc workstations. When we ran them on 32-bit Sparc workstations, the GUI ran fine. So they did all the front-end work on 32-Bit machines and then sent the simulations off to the 64-bit servers when they needed the heavy number crunching. Apparently the front end was never designed to run in 64-bit mode.

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    7. Re:Commercial software lags... by Anonymous Coward · · Score: 0

      It's not done lagging. To this very day, Netgear's gigabit VPN firewall, the 336, is not compatible with 32-bit operating systems with its SSL client, nor with its VPN SSL rig that uses a browser as the client. It is supposed to get a firmware update "next quarter" ... unless of course the fad passes and we all go back to 32-bit OSs.

    8. Re:Commercial software lags... by kestasjk · · Score: 2, Interesting

      For some reason commercial software usually seems to lag worst on the 64 bit transition. Windows and OSX lagged Linux, Java and Flash were the last bits on my Linux systems to go 64 bit, etc. They act as if 64 bit is a fad, and people will soon come to their senses and revert to 32.

      Linux is plenty commercial, I think you mean "consumer software". (Or at least "proprietary software", but I don't think correlation implies causation there)
      Windows server platforms got behind 64-bit more or less in step with its adoption in servers (even having ports to Itanium, back when that was a credible contender for the next 64-bit arch). Also OSX's transition to 64-bit started with the kernel and worked its way up through the UNIX layer, allowing server apps to use more memory long before consumer apps.

      It has taken much longer for consumer OSes to be 64-bit by default, but that's just because there was no need for it until >3-4GB of memory became common. There's no need for 64-bit Flash like there was for 64-bit MySQL/SQL Server/Oracle etc, and adoption rates have reflected that.

      --
      // MD_Update(&m,buf,j);
    9. Re:Commercial software lags... by Anonymous Coward · · Score: 0

      no need for it until >3-4GB of memory became common. There's no need for 64-bit Flash like there was for 64-bit MySQL/SQL Server/Oracle

      Additionally, Adobe probably doesn't want deal with address space randomization. That's just a malicious, wild guess though.

    10. Re:Commercial software lags... by cynyr · · Score: 1

      do Intel or AMD even sell a 32bit CPU anymore?

      --
      All of the above was encrypted with a Quad ROT-13 method. Unauthorized decryption is in violation of the DMCA.
  17. Memory moreso than computations by dunc78 · · Score: 3, Informative

    As another Engineer that uses MATLAB quite frequently, the only reason I have used 64-bit support was to analyze larger data sets.

    1. Re:Memory moreso than computations by Anonymous Coward · · Score: 0

      Yes, memory. That aspect of 64-bit computing can't be denied, but I think the above poster was speaking of 64 bit's precision. A 64-bit system running in 32-bit mode is sufficient--in fact, if you ran MATLAB on a Solaris machine, that's what you got. MATLAB didn't add 64-bit support at all until a couple years ago.

  18. 64 bit integer plus 64 bit integer equals 65 bits? by LostCluster · · Score: 2, Funny

    In order for a number to need the 64th bit it must have a one in that 64th-most-significant position... and in order to add two such numbers, you end up needing a one in a 65 position... and there's your overflow error.

  19. Exactly, 64 bits is so over rated by Anonymous Coward · · Score: 0

    I mean, it's only double the size of 32 bits, so who cares? It's not like it's 4 billion times more, so, exactly - SO ?

    1. Re:Exactly, 64 bits is so over rated by Skapare · · Score: 1

      64 bit ints are for wimps. Real number geeks play with gigabit ints (equivalent to over 330 million decimal digits). For example, calculate square roots using extreme integers in Pike and Python.

      --
      now we need to go OSS in diesel cars
    2. Re:Exactly, 64 bits is so over rated by Anonymous Coward · · Score: 0

      why are we still bounded to an arbitrary number of digits?

      and why most of the other arbitrary precision library math are stuck with bcd?

      progress, we're doing it wrong.

      p.s.
      http://gmplib.org/

    3. Re:Exactly, 64 bits is so over rated by Skapare · · Score: 3, Insightful

      CPU operations are limited to a certain number of bits for their operations. Programming languages like C/C++ perform their basic arithmetic operations at the machine level, so they inherit the same limitations. These bounds are not a limit either through library/template facilities at the C/C++ level, or with basic operations in high level (particular object oriented) languages such as Pike and Python.

      I can tell you libgmp is not stuck with bcd. But the bcd aspect will exist because some kinds of uses for extended precision are financial/money based, and conversion to and from an external decimal format is sufficiently frequent that it's easier/faster to just do the arithmetic directly on decimal, even if tightly squeezed into 4 bits per digit. This has been going on since early computers. FYI, the ancient IBM model 1620 computer could do this in hardware. As you can see from the code in the links I posted earlier, a choice of language can hide the fact that the underlying architecture has fixed width arithmetic.

      BTW, for fun, compare the speeds of those two programs, which are implementations of the same algorithm.

      --
      now we need to go OSS in diesel cars
    4. Re:Exactly, 64 bits is so over rated by Anonymous Coward · · Score: 1, Insightful

      I know libgmp doesn't use bcd, why on earth do you think I've linked that?

      but at thesame time why don't we have a math lib that supports it all? rounding support for financial institutes, fast math until it overflow the 32 bits, double where precision is not defined and arbitrary precision when you tell it to.

    5. Re:Exactly, 64 bits is so over rated by K.+S.+Kyosuke · · Score: 1

      but at thesame time why don't we have a math lib that supports it all? rounding support for financial institutes, fast math until it overflow the 32 bits, double where precision is not defined and arbitrary precision when you tell it to.

      We have, it's called Common Lisp - at least in some implementations. I never understood why Common Lisp and Scheme are the only languages with sane numeric types and operations.

      --
      Ezekiel 23:20
    6. Re:Exactly, 64 bits is so over rated by cheesybagel · · Score: 1

      The problem with Common Lisp is the spec is huge. Hard to implement it all. Also the interfaces with system libraries, say for doing a GUI application, are somewhat horrible. Then there is the syntax. The syntax is a huge barrier. Not just for people used to program in C. For people who are used to human languages as well. C at least resembles pseudocode somewhat more than Lisp even if it is not quite Pascal or BASIC.

      Which is why in practice people like Python a lot. It mostly takes care of these problems.

    7. Re:Exactly, 64 bits is so over rated by Anonymous Coward · · Score: 0

      Then there is the syntax. The syntax is a huge barrier.

      You mean lack of syntax?

  20. Hmm... by gbutler69 · · Score: 0, Offtopic

    Maybe you should buy decent hardware, or, I don't know, read the FAQ and instructions for dealing with lame-ass Broadcom Cards (like I had to do today to fix my Mother-in-Laws lame-ass HP Pavilion dv6000).

    --
    Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.
    1. Re:Hmm... by daveime · · Score: 1

      Ah the old chestnut ...

      "Linux supports far more hardware than X,Y or Z operating system".

      "But why won't my A,B or C modem work under Linux".

      "Ah you shouldn't buy crappy hardware".

      (Note this is the same hardware that works perfectly well under X,Y and Z operating system).

      In summary, Linux is still not ready for (everyone's) desktop, only those with non-crappy hardware.

    2. Re:Hmm... by cynyr · · Score: 1

      really there is hardware that doesn't work? have the output of lspci so i could verify. for wireless cards i was under the impression that everything had either a native driver, or "worked" with ndiswrapper. Also lack of native linux support is 100% the manufacturer's problem; see: www.linuxdriverproject.org a project lead by Greg Kroah-Hartman to get drivers into the kernel.

      I think a lot of the problem, lack of driver support, is that the dev's and lots of experienced linux users tend to pay attention to the hardware they buy. Who wants a wireless card that has 10' worth of reception? or a harddrive with slow read/write? There is then a lack of this hardware in the community. Most of the troubleshooting then happens in the ubuntu forums, which are slow, and may only be accessible from the other OS, making it tedious to troubleshoot at best.

      Also, go get a retail copy of win7/winXP, install that, and see if it ships with drivers for $(crappy hardware) 3d accel out of the box? sata/sas raid controller? shitty broadcom based wireless?

      --
      All of the above was encrypted with a Quad ROT-13 method. Unauthorized decryption is in violation of the DMCA.
    3. Re:Hmm... by gbutler69 · · Score: 1

      Or, as I said, read the FAQ and install the necessary drivers. No, your're too lazy!

      --
      Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.
  21. Re:MATLAB ~= fast by dunc78 · · Score: 3, Informative

    Don't know what your scientific language of choice is, but I have compared MATLAB programs to FORTRAN programs and the difference in speed was negligible. A properly written MATLAB function can be quite fast.

  22. Re:In other news... by Anonymous Coward · · Score: 0

    Windows still won't read my wireless card. Granted the company does not make windows drivers, but I still think it is windows fault.

  23. Re:64 bit integer plus 64 bit integer equals 65 bi by coolsnowmen · · Score: 1

    I'm hoping that is a joke

  24. Re:MATLAB ~= fast by Anonymous Coward · · Score: 1, Informative

    When is the last time you've used it? I noticed it has improved over the last few iterations. It precompiles a lot of stuff now, so like FORTRAN of yore, it can do better machine optimization that even a good C compiler can do since it can make better inferences about data types, preallocation, short-circuting of decisions, etc.

    But of course, it'll never run real-time or be as efficient as purpose-written code (where you don't need to schlep an interpreter and all that junk along). The Mathworks will happily sell you the automatic code generation from Simulink modules, (for a significant fraction of your yearly salary, AFAIK) those will then run real-time on some CPUs - but I have no idea how good the code generated is.

    So yeah. We use Matlab cause you can implement complex algorithms in hours, and visualize the data. If you want to write a pretty app with a GUI, you're using the wrong tool.

    And yes, the lack of 64-bit int operations is a non-issue. Wasn't there an article about the old "what every programmer should know about floating point" paper here on /.? Unless you know the issues involved there, you won't understand the issues here.

  25. I'm not surprised... by Jah-Wren+Ryel · · Score: 5, Informative

    I'm not a MATLAB user, just someone who has had to troubleshoot problems with it for a variety of clients.

    A while back, more than a few years now, MATLAB on HPUX was limited to about 1GB of memory. Any MATLAB code that needed more memory than that was shit out of luck - even on a 64-bit machine with 64GB of RAM. This was partly due to MATLAB only being available as a 32-bit binary for HPUX and partly due to MATLAB having been compiled and linked in the most naive way possible. After diagnosing the problem with a client's MATLAB code (they had a lab full of $2M computers and couldn't run this software that only needed a couple of GB of data), I wrote a short explanation of the compile and link flags necessary to enable any process to access at least 2GB of RAM with practically no impact and 3GB with only minimal impact. In either case, no code changes necessary whatsoever.

    MATLAB's customer support group responded with a categorical denial that it was even possible to do - that HPUX architecturally limited all 32-bit processes to 1GB of addressable memory. While a customer-specific test release would have been the ideal response, I was really only expecting them to open a feature request and get the next release built the right way. But they wouldn't even give my client that (despite them having an expensive support contract) - just a flat out denial of reality instead. The solution for my client was ultimately to rewrite their software in C and link it with the right flags to get access to 3GB of memory.

    So, given just how strong their disinterest was in even trying to make their software work for big boys doing scientific computing, I'm not surprised to hear that all these years later they still haven't even bothered to implement native 64-bit math. They are entrenched and there just isn't enough competition to make them lift a finger.

    --
    When information is power, privacy is freedom.
    1. Re:I'm not surprised... by Anonymous Coward · · Score: 2, Interesting

      I guess no one got around to porting MATLAB to the Alpha architecture.

      ISTR that there was a lot of discussion about 64 bit floating point numbers when Alpha was first announced because some folks wanted a certain
      number of bits reserved for the exponent, and others wanted a different number of bits. Happily, all that got straightened out, and I don't think
      Microsoft was involved in that discussion. It certainly kept the DEC FORTRAN compiler team up at night wondering which "standard" would prevail.

      But, as we all know, the nice thing about standards is that there are so many to choose from...

    2. Re:I'm not surprised... by Tablizer · · Score: 1

      They are entrenched and there just isn't enough competition to make them lift a finger.

      Just imagine the problems if operating systems fell under this pattern.
           

    3. Re:I'm not surprised... by Anonymous Coward · · Score: 0

      I hear that. I have some braindead application where I had to have MATLAB on an embedded system. I had a pentium class x86 board running linux, and I could not run MATLAB without a xserver, even though it said it would work. Back and forth with MATLAB and they basically said, 'yeah, we dont care about your edge case', I managed to make it work with a null xserver and faking a couple of key presses.

      So glad I don't work with it anymore...

    4. Re:I'm not surprised... by Anonymous Coward · · Score: 0

      I'll confirm that horrid support.

      I had issues where the 64bit Linux variant of Matlab was running at approximately 1/10th the speed, during certain operations, compared to the 32bit version under win32.

      Do you think I could even get them to set up a test case, to do a comparison? Considering the amount of money being thrown their way, they certainly could have taken my test case, ran it, and confirmed that the results were the same on their end.

      Instead, the lab in question reduced Matlab usage by using Octave whenever possible, and only using a single version of Matlab when required. That's 5 licenses reduced to 1.

      Good job Mathworks. You truly suck. You are the Adobe of the academic world! Horrid coding, horrible turn around time, you name it.

      (note, the above doesn't even include the number of horrible bugs I've seen in Matlab.. and that takes MONTHS to get any sort of new release on)

  26. Re:64 bit integer plus 64 bit integer equals 65 bi by Anonymous Coward · · Score: 0

    Any signed 64 bit number needs the 64th bit regardless of whether it's a 0 or a 1. 0-62 just depends on the number, but 63 will always be needed.

  27. Anything to declare? by LostCluster · · Score: 1

    Dim PowerBallOdds as SuperSizeInt
    Dim ChanceOfMeWinning as ExtraAccuFloat
    Dim NeedToWorkTomorrow as Boolean = True

    1. Re:Anything to declare? by geminidomino · · Score: 1

      "Dim?"

      Really?

    2. Re:Anything to declare? by Anonymous Coward · · Score: 0

      Yes, he is.

  28. Re:Yes but Octave by Anonymous Coward · · Score: 2, Informative

    Like every other crap gnude ware (Octave) has a sucky GUI.

    Hopefully, this might be fixed very soon via Google Summer of Code 2010.

    http://community.kde.org/GSoC/2010/Ideas#Project:_Cantor:_Add_a_new_Backend

  29. Especially since someone has implemented it.... by welcher · · Score: 5, Informative

    If you really want this support, get the user contributed package from matlab central. That wasn't too hard was it?

    1. Re:Especially since someone has implemented it.... by ProfMobius · · Score: 5, Insightful

      Well, having to go dig an additional library to add native types is a bit paradoxal isn't it ? Even more when the software cost a lot of money and is directed at engineers.

      --
      EULA : By reading the above message, you agree that I now own your soul.
    2. Re:Especially since someone has implemented it.... by welcher · · Score: 4, Informative

      The point is that very few engineers currently want or need this functionality -- if they did, the Mathworks folks would surely be on to it. The native type is defined, abstract methods are waiting there to be defined, and someone who needed it has implemented it and made it available. Incidentally, that package has had 38 downloads since july, perhaps indicating the level of demand. From this thread, it looks like the company is waiting for the demand before implementing it themselves.

    3. Re:Especially since someone has implemented it.... by thegarbz · · Score: 5, Interesting

      38 downloads may not indicate a lack of demand. The demand may be there, but it may be masked in the confusion of what may be thought to have been a standard part of the program.

      When our uni upgraded the maths lab computers Matlab versions to R2008a they installed the 64bit version as well. The logical thought was that the computers are 64bit, they have the option, so why not. Well at the time the basic add-on packages weren't available for the 64bit version, which included the package with the solve() function. Sure they could have looked on the website and found a few basic implementations of Newtonian solve functions written for 64bit, but their response to student complaints was to remove the 64bit Matlab and install the 32bit version.

      Much like how a pirated copy does not indicate a lost sale, the fact that only few people have "demand" for the application, does not mean there's a lack of demand for the functionality in the 64bit program. It may just mean that people have tried, found it lacking, and dropped back to 32bit. I'd be interested to see stats of how many people use the 64bit Matlab on computers that natively support 64bit instructions

    4. Re:Especially since someone has implemented it.... by pengin9 · · Score: 1

      i'm satisfied with 32 bit floating point for number crunching. do we really need 64 bit for most of our calculations. it's just engineering throw a safety factor of 4 on it and call it a day.

    5. Re:Especially since someone has implemented it.... by welcher · · Score: 4, Informative

      We are talking about 64 bit integers. Matlab has 64 bit floating point arithmetic. This means you can do exact integer arithmetic up to 2^53. I'd say mathworks has a pretty good idea of the demand for 64 bit integers and it is not that great -- it's not like it is a huge job for them to implement it so they would surely do it if their customers wanted it.

    6. Re:Especially since someone has implemented it.... by sadtrev · · Score: 4, Insightful

      using 64-bit integers instead of floats is a common trick in embedded C for control and signal processing on low power processors. I have experience of four different embedded systems used in commercial products from three different companies I've worked with - three of the four used 64-bit integers for roundoff-sensitive calculations.
      I was a bit surprised that Matlab can't handle this, but then I've seen the poor quality of the ostensibly production-ready code that comes out of their M2C converter - it was about ten times the code footprint and a fifth the speed of a minimally-optimised C version of the same algorithm.

      Honestly, I don't know how anyone can justify paying for this, when R (and even Octave in this instance) is more capable. Where the target platform requires C or asm code, then doing development in Matlab is usually more trouble than it saves. The graphs are prettier, though.

    7. Re:Especially since someone has implemented it.... by Anonymous Coward · · Score: 0

      Much like how a pirated copy does not indicate a lost sale, the fact that only few people have "demand" for the application, does not mean there's a lack of demand for the functionality in the 64bit program. It may just mean that people have tried, found it lacking, and dropped back to 32bit.

      That depends on how much you narrow down "demand". Since they were switching to 32bit without even complaining about it, what features did they loose by this move that they needed? Probably none. They installed the 64bit version in the first place just because the computers were 64bit, but not because they had a need for any 64bit functionality in the software. The fact that few people complain about some missing feature in the 64bit version, and most are happy with the 32bit version is a strong hint that there is actually very little need for the 64bit version.

      It's like me installing 64bit Linux three weeks ago on my 64bit machine, then running into all kinds of trouble with flash & java in firefox, wlan drivers crashing the system, ... then wiping the disk and installing 32bit Linux. I don't complain, because I have no demand for a 64bit OS on my private desktop.

    8. Re:Especially since someone has implemented it.... by Anonymous Coward · · Score: 1, Interesting

      integer operations are way faster than floating point operations on most CPUs

    9. Re:Especially since someone has implemented it.... by Rockoon · · Score: 3, Insightful

      1998 called. It wants to know why you havent learned anything since then.

      --
      "His name was James Damore."
    10. Re:Especially since someone has implemented it.... by brufleth · · Score: 1

      I've been to conferences at Mathworks. They're actually very responsive to their customers. They have market dominance and they actively work to maintain that by making their product the way their customers want it to be. They practically beg their users to give them ideas.

    11. Re:Especially since someone has implemented it.... by gmarsh · · Score: 2, Insightful

      Oddly enough, he's right. Integer operations *are* way faster on most CPUs. Maybe not on a modern x86 CPU working in SSE space, but they're not "most CPU's".

      If you're writing code for a fixed-point DSP chip (used in most home receivers) the majority of RISC processors (ARM, MIPS, most Power) or any microcontroller, working in integer space will be much faster since floating point has to be emulated or issued to a separate floating point unit which requires extra overhead to move data to/from it.

      And the same engineers who target code to those systems also tend to use Matlab. Many systems (control systems, audio/video codecs, whatnot) are simulated in Matlab before they're even written for their target processor, where you can do things like verify the algorithm up front, then specify an arbitrary number of bits at different stages to find out how much error it introduces so you can pick your data types in your target.

      Matlab with 32-bit integers (or 64 bit floats + rounding, for 53 bits) is good enough for simulating most 16 bit DSPs (40 bit accumulator, usually) but not quite enough for a 24 bit DSP (56 bit accumulator, usually). Having pure 64 bit integer support means you're good for 24 bitters.

      Now, knowing Matlab, I wouldn't be surprised if they emulate integers somehow using floating point ;)

    12. Re:Especially since someone has implemented it.... by keithjr · · Score: 1

      There's also the point that supporting a 64-bit OS means that MATLAB should be able to support data structures larger than 4GB in size. It's simply a question of whether users needed to deal with large operands or large amounts of data. With high-speed data and image acquisition tools, I'd wager the latter is a higher priority.

    13. Re:Especially since someone has implemented it.... by vijayiyer · · Score: 1

      For those who are doing algorithm development, there is no substitute. It's not ideal for C or asm targets, and the old M2C converter was crap, but I challenge anybody to beat matlab (or maybe IDL) when you want to whip together an image processing algorithm and prove it out.

    14. Re:Especially since someone has implemented it.... by SimonTheSoundMan · · Score: 1

      Floating point calculations could be wildly inaccurate on CPUs, Intel CPUs as a prime example. *tongue in cheek*

    15. Re:Especially since someone has implemented it.... by IndustrialComplex · · Score: 1

      i'm satisfied with 32 bit floating point for number crunching. do we really need 64 bit for most of our calculations. it's just engineering throw a safety factor of 4 on it and call it a day.

      Good to know that all I ever had to do was simply multiply by four. Why did I ever bother with models and simulations in the first place?

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    16. Re:Especially since someone has implemented it.... by Rockoon · · Score: 1

      ARM called and wants to know why you think its #1 status isn't important, and then Intel called and wants to know why its #2 status isn't important.

      --
      "His name was James Damore."
    17. Re:Especially since someone has implemented it.... by noidentity · · Score: 1

      The native type is defined, abstract methods are waiting there to be defined, and someone who needed it has implemented it and made it available. Incidentally, that package has had 38 downloads since july, perhaps indicating the level of demand.

      The demand was actually 4294967334, but the guy used MATLAB for the counter (without the library) so it wrapped around at 4294967296.

    18. Re:Especially since someone has implemented it.... by Anonymous Coward · · Score: 0

      .... The graphs are prettier, though.

      I find that the combination of R, gnuplot, octave, and LaTeX to be indispensable and the output is very professional and.. how shall I say it?.. um.. slick! Not many software, Matlab included, can easily rival the quality of the document/graph layout.

      The only place where I use Matlab is when I am discussing a research idea and need to use the toolbox's GUI to quickly demonstrate or test out a new idea.

      I revert to my open source toolbox to seriously lay it down in stone.

       

    19. Re:Especially since someone has implemented it.... by Trepidity · · Score: 1

      I don't believe R can actually handle 64-bit integers, either, at least not in any easy way. Its 'numeric' type is internally a double, and even when you coerce it to an integer, it just becomes in effect the 53-bit integer part of a double.

    20. Re:Especially since someone has implemented it.... by marcosdumay · · Score: 1

      Scilab and Octave consistently beated it when I was into image processing. I did not try it in R.

      Everytime it makes the frontpage of slashdot (and it never has good news, only problems) I get amused on why people still pay for that thing.

    21. Re:Especially since someone has implemented it.... by JumpDrive · · Score: 1

      Documentation and support. Basically you can do everything in MATLAB that you can do in both (R and Octave). You just have a lot more documentation.
      If I did something in MATLAB, then once I was sure of what I wanted to do or needed to do with a dataset or dataset, I would then move it to R and Octave, because then I would know exactly what information I am searching for in R and or Octave to obtain the same results.
      Why switch to R and Octave after doing it in MATLAB? because of licensing.

    22. Re:Especially since someone has implemented it.... by turgid · · Score: 1

      If you're writing code for a fixed-point DSP chip (used in most home receivers) the majority of RISC processors (ARM, MIPS, most Power) or any microcontroller, working in integer space will be much faster since floating point has to be emulated or issued to a separate floating point unit which requires extra overhead to move data to/from it.

      All of the main RISC architectures: MIPS, SPARC, POWER, PowerPC, Alpha, PA-RISC do (or did) floating-point in hardware since the 1980s. Almost all of them had move to having the FPU and CPU on the same chip by the early 1990s. Usually the ADDs and ofter the MULs could be done in a single clock cycle and often in pairs or quadruplets. That's what made them all at least 10 times as fast the x86 CPUs of the day at the same clock frequency.

      Low power, low cost RISC CPUs found in embedded devices such as PowerPC and ARM may not have floating-point hardware and need emulation libraries in software. I work on devices that use PowerPC processors. The lower-end products use integer-only CPUs, whereas the higher-end stuff have the CPUs with the integrated FPU. You can run the code from the low-end machine on the high-end, but not vice versa.

    23. Re:Especially since someone has implemented it.... by zippthorne · · Score: 1

      Matlab will output to LaTeX...

      Also, I don't know if it's changed, but back in R12, you could use a limited subset of LaTeX math mode to typeset the labels on your graphs.

      --
      Can you be Even More Awesome?!
  30. What's the deal? by countertrolling · · Score: 1

    Can't you just move the decimal over a coupla points?

    --
    For justice, we must go to Don Corleone
  31. Observations by drolli · · Score: 1

    a) The data types in matlab have absolutely nothing to do with the processor you are running on - and that is good - all my ml programs run on all my machines b) already the 8087 supported 64 bit integer - so no i dont know why matlab does not have it since a long time c) Usually the mathworks people care more about compatibility to the toolboxes. As long as a new feature collides with one of the important toolboxes, they rather don`t introduce it. E.g. if the signal processing toolbox fucks up when being fed 64 bit data

  32. I stopped using MATLAB... by Reik · · Score: 1

    ..when they got rid of the 'cool' undocumented commands like 'why' and 'f***'. ;)

  33. Re:MATLAB ~= fast by Brett+Buck · · Score: 2, Insightful

    Only if it can be vectorized. Otherwise, MATLAB is *bog slow*. Compiling as a MEX function will restore the speed.

  34. Re:64 bit integer plus 64 bit integer equals 65 bi by Devout_IPUite · · Score: 1

    I think it's pretty obvious. Why use a whole 64 bits when to represent 4? You should probably just use three bits. 100. That's why machines today are so slow... All these wasted bits.

  35. big arrays by Anonymous Coward · · Score: 0

    You need 64 bit integers for holding indexes into arrays with more than 2 billion elements.

    1. Re:big arrays by Nutria · · Score: 1

      You need 64 bit integers for holding indexes into arrays with more than 2 billion elements.

      Unsigned ints will double that.

      --
      "I don't know, therefore Aliens" Wafflebox1
  36. there's a llibrary to do this... by Anonymous Coward · · Score: 0

    Just use the int64 user contributed stuff:

    http://www.mathworks.com/matlabcentral/fileexchange/24725

  37. Python as an alternative by physicsphairy · · Score: 4, Informative

    The summary mentioned Octave as an alternative to Matlab. There is also Scilab (which has some more c-like features).

    In recency I have simply been using Python. Use the iPython (interactive python) shell and load scipy (from scipy import *) and you have a very nice calculating environment. The scipy arrays are quite a joy to work with compared with what I remember from Matlab. If you're working with equal size 1D arrays then they can be used without modification in normal mathematical expressions, so a lot of my code no longer involves any iteration with for loops.

    There is a graphing library (pylab) based on Matlab syntax. If you start iPython with the -pylab flag it will print out plots the same way as in Matlab. There is also Easyviz which I believe also uses Matlab syntax but interfaces with a number of standard graphing programs (like Gnuplot.)

    The sympy package for doing symbolic manipulations is also quite nice, IMHO.

    Disclaimer: I only used Matlab casually for my undergraduate math classes.

    1. Re:Python as an alternative by Aphonia · · Score: 1

      The . in matlab is very helpful for doing things like [1 2 3] .* [4 5 6] = [4 10 18], and cos([1 2]) will be [cos(1) cos(2)] - it isn't always context evident when .* versus * is desired. Symbolic is horrible since the switch to MuPad, but who uses it, really?

    2. Re:Python as an alternative by Anonymous Coward · · Score: 0

      If you're working with equal size 1D arrays then they can be used without modification in normal mathematical expressions, so a lot of my code no longer involves any iteration with for loops.

      If you were using for loops in MATLAB, you were doing it wrong. Iterated calculations in MATLAB are pathetically slow (although IIRC recent versions have a JIT to reduce this penalty), matrix and vector calculations are practically as fast as C or FORTRAN.

    3. Re:Python as an alternative by querent23 · · Score: 1

      "ipython --pylab" ftw! and i'm a math grad student.

    4. Re:Python as an alternative by Anonymous Coward · · Score: 0

      If you're working with equal size 1D arrays then they can be used without modification in normal mathematical expressions, so a lot of my code no longer involves any iteration with for loops.

      I'm no math whiz(I can never remember what the terms mean) but if you mean multiplying the same elements of two equal sized arrays with a single command in MATLAB, you just have to affix a period before the operator.
      eg
      a = [1 2 3]; b = [2 3 4];
      a*b will return an error saying dimension mismatch
      a.*b = [2 6 12];
      a.^b = [1 8 81];

      Coming from a C/C++ background, I was in the habit or writing loops for everything all the time, then I realized MATLAB catered for this significantly.

    5. Re:Python as an alternative by kestasjk · · Score: 1

      Doesn't requiring indentation make Python annoying for an interactive console? If you have to loop over something how can you do that on multiple lines via a console?

      --
      // MD_Update(&m,buf,j);
    6. Re:Python as an alternative by physicsphairy · · Score: 1

      Doesn't requiring indentation make Python annoying for an interactive console? If you have to loop over something how can you do that on multiple lines via a console?

      The shell knows from syntax if you've started to type a function, conditional, etc. (due to a terminating colon). From there you are free to add the relevant code at whatever appropriate degree of indentation, ending with two consecutive carriage returns. It will all be interpreted as one block so if you need to go back and edit a function you can scroll back to the entire snippet. Also, every input receives a line number, so you can go back and tell it to rerun lines 23-42, etc.

      But the point is not to write your programs in the console. If I am writing an actual program I generally have my main code open in my favorite editor simultaneously. If I type "run program.py" iPython will execute that code as well as import any variables or functions I've defined in it for inspection/use in the interactive shell. I find this gives me the best of both worlds.

    7. Re:Python as an alternative by kestasjk · · Score: 1

      Hmm, not sure. I often find myself doing the old "find . | grep this | sed 's/that/something/g' | perl -ne 'm/blah blah blah/ and print "$this $that";'" with loops and whatnot, and for that sort of thing I can't imagine having to put it all in line by line, and not having to go back and forth. At that point I'd want to be in an editor, but then it's not really an interactive console but an IDE.

      Maybe dealing with files and pipes etc in Perl is a totally different ball game to doing math in Python, but something about Python really doesn't work as a interactive console for me (which is sad, because I can definitely see the shortcomings in Perl)

      --
      // MD_Update(&m,buf,j);
    8. Re:Python as an alternative by highacnumber · · Score: 1

      You should really check out Sage: http://www.sagemath.org/ . Python based, includes pylab, ipython, scipy, numpy (everything you mentioned) plus much, much more.

  38. Numeric Python by Efreet · · Score: 4, Informative

    Just another reason to switch to numeric python. The more I use Matlab the less I find that I like it.

    --
    This sig wasn't worth reading, was it.
    1. Re:Numeric Python by mathfeel · · Score: 4, Interesting

      Just another reason to switch to numeric python. The more I use Matlab the less I find that I like it.

      I don't have mod point, so allow me to second that.

      The advantage of MATLab for me was ease of development that it allows me to quickly get some simple proof-of-concept code up. If I want run time speed, I'd use CLAPACK and GNU SL. I can't imagine doing any very serious numeric code in anything else (not that my work was very numeric heavy). With NumPy and SciPy, it is just as easy to do what MATLab does in a language that's actually fun to work with.

      --
      The only possible interpretation of any research whatever in the 'social sciences' is: some do, some don't
    2. Re:Numeric Python by cleepa · · Score: 1

      One of the reasons to use MATLAB is it's huge collection of algorithms in the toolboxes. Another reason to use it is Simulink. Details on the Mathworks website: http://www.mathworks.com/access/helpdesk/help/helpdesk.html Someone else mentioned it's 2D and 3D plotting capabilities. Python may well be nice as a number crunching environment, but for algorithm design, it is very hard to beat MATLAB.

    3. Re:Numeric Python by Anonymous Coward · · Score: 0

      It's happening, too. I've just been in a small solar energy convention where I presented a Python program I wrote, and been approached by 3 other Pythoneers - 3 more than I expected, given Matlab's prevalence in academy.

    4. Re:Numeric Python by Kensai7 · · Score: 3, Informative

      With NumPy and SciPy, it is just as easy to do what MATLab does in a language that's actually fun to work with.

      I just hope Sage succeeds and becomes more well-known. It's the best open alternative we have.

      --
      "Sum Ergo Cogito"
    5. Re:Numeric Python by Paradigma11 · · Score: 1

      With NumPy and SciPy, it is just as easy to do what MATLab does in a language that's actually fun to work with.

      I just hope Sage succeeds and becomes more well-known. It's the best open alternative we have.

      Flamebait? sage was a reference to http://www.sagemath.org/ .

    6. Re:Numeric Python by Kensai7 · · Score: 2, Informative

      This is ridiculous. Why flamebait?!

      Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface. Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab.

      --
      "Sum Ergo Cogito"
  39. Re:64 bit integer plus 64 bit integer equals 65 bi by Anonymous Coward · · Score: 0

    That's a bunch of horse shit. Doubling the number of bits you process has little to do with critical path speed. Adding extra hardware to deal with changing bit lengths in the ALU has a HUGE impact on critical path speed.

    That is: the way it is is far, far faster than representing numbers in arbitrary bits.

  40. Re:Yes but Octave by ObsessiveMathsFreak · · Score: 5, Insightful

    For a program like octave, having no GUI is very forgiveable. There is really no way to work with the system outside of prompt commands. Even Matlab is very prompt based.

    What is unforgivable in Octave's case is its graphing capabilities. Octave used Gnuplot for drawing which basically means it is stuck in the 1990s when it comes to making plots. 3D plots are slow, difficult and complicated things to create. Animations are out of the question. 99% of the time, you're better off exporting to png (itself a nighmare), and animating from those. 3D data is all but ungraphable on Linux systems anyway, so I suppose Octave is not alone here.

    --
    May the Maths Be with you!
  41. Re:In other news... by GNUALMAFUERTE · · Score: 0, Offtopic

    And that is Ubuntu's fault how exactly?

    It is the manufacturer's duty to develop drivers for your platform. Off course, some kernel developers are nice enough to develop drivers when the companies fail to do so. In that case, the company is still at fault, and there is no way you can blame Ubuntu or the kernel developers for that lack of hardware support. Now that I think of it, you can't blame the company either. They develop their hardware and they have no obligation to provide support to any platform. it is your fault for buying shitty, unfriendly hardware with no GNU/Linux support. Right now, almost all hardware is supported out of the box on GNU/Linux, but even when it wasn't, I didn't have any kind of issues with it, because I check before I buy.

    --
    WTF am I doing replying to an AC at 5 A.M on a Friday night?
  42. For what they charge for a license, they should. by mstrcat · · Score: 1

    The price of Matlab (minimum of $2000), more like $10K for a decent set of tool boxes. They charge 20% per year for 'maintenance', though thankfully you don't have to buy a maintenance contract to use the software. And for all of this, they can't be bothered to support 64 bit integers? I'd be asking very pointed questions about why not, if I had a license.

  43. exellent competition by Anonymous Coward · · Score: 3, Interesting

    There's excellent competititon for Matlab, foremost NumPy. It has tons of packages, 64bit support, and just works all around a lot better.

    Matlab is succeeding not because of lack of competition, but because it's entrenched and people are lazy

    1. Re:exellent competition by querent23 · · Score: 1

      I second the shout out to NumPy. I use pylab.

    2. Re:exellent competition by otis+wildflower · · Score: 1
  44. What can it do with 64 bit integers? by Aphonia · · Score: 1

    You can run the following to find what it supports:
    >> methods int64
    >> methods uint64

    Compare to
    >> methods int32
    >> methods uint32

    Though floating point is very common for matlab use, i think this was fairly common knowledge.

    Until someone makes an alternative with all the toolboxes i use, im not switching.

  45. only half true by giampy · · Score: 1

    While this is not implemented natively, (or at least not until you use the fixed point tools to auto-generate some code for a 64bit machine), you can do a lot of fixed point math with the fixed point toolbox:

    For example:

    >> x=fi(5,1,64,0,'SumMode','KeepLSB');
    >> y=fi(23,1,64,0,'SumMode','KeepLSB');
    >> x+y

    ans =

            28

                        DataTypeMode: Fixed-point: binary point scaling
                            Signedness: Signed
                            WordLength: 32
                    FractionLength: 0

                              RoundMode: nearest
                        OverflowMode: saturate
                          ProductMode: FullPrecision
        MaxProductWordLength: 128
                                  SumMode: KeepLSB
                      SumWordLength: 32
                      CastBeforeSum: true

    The documentation is here:
    http://www.mathworks.com/products/fixed/

    It is true that you need the fp toolbox to do that, though.

    --
    We learn from history that we learn nothing from history - Tom Veneziano
  46. Absurd limit theory by symbolset · · Score: 2, Insightful

    It's best to design software for limits that are frankly absurd. Since I coined the phrase "absurd limit theory", let's delve a little bit into it.

    A second divided into increments enumerated by fractions of a 64 bit integer is less than the differential travel of differing wavelengths of light over a planck unit of distance. It's a smaller unit of time than matters to our current understanding. 2^64 seconds is more time than the entire history of our Universe from beginning to end even in the most ridiculous theory. Even counting photons and every known subatomic particle, an index of 2^64 is sufficient to enumerate each and every one with a unique ID that represents that one and no other. In each dimension angles discriminated in units of 1/2^64 of a circle are fine enough for any imaginable purpose.

    Given that we are close to understanding these elements, 128 bits would probably be a more durable unit. 128 bits should give us a few more years of discrimination before the physical sciences discover even finer units of time, mass and distance. Some even theorize now that 64 bits are the limit: that space, mass and time have a granularity and that finer resolutions are absurd. To that I say...

    If software must be designed with limits it should use limits so absurd that no user no matter how hypothetical could be constrained by those limits because the designer does not know how long his application will persist nor how its use will evolve.

    It's not the most efficient design that wins. Ultimately it's the most persistent.

    --
    Help stamp out iliturcy.
    1. Re:Absurd limit theory by Nutria · · Score: 1

      2^64 seconds is more time than the entire history of our Universe from beginning to end even in the most ridiculous theory.

      OpenVMS keeps time in a 64 bit integer, and the "ticks" are 100ns. Epoch is 17-Nov-1858; rollover is somewhere around the year 32,000.

      --
      "I don't know, therefore Aliens" Wafflebox1
    2. Re:Absurd limit theory by symbolset · · Score: 1

      A nanosecond is one billionth of a second, so 100ns is 1 second/10,000,000. That means that rollover would occur if they were using seconds and borrowing your numbers, about year 320,000,000,000. Cosmological theory has heat death of the universe at a googol years give or take a couple orders of magnitude. Yes, you're right - 2^256 bits is better used for the significand of time. 320 billion years can only describe the current era, but that squared should do it for all time - at least to our current understanding. That squared thrice should provide a good cusion for now.

      --
      Help stamp out iliturcy.
    3. Re:Absurd limit theory by Anonymous Coward · · Score: 0

      Learn about Planck units, for doing quantum mechanics. Now learn about a planck time. Now work out the age of the universe in this unit. This is how to do quantum cosmology.

    4. Re:Absurd limit theory by symbolset · · Score: 1

      I did that. I do believe I mentioned that. Do you know something I don't?

      --
      Help stamp out iliturcy.
    5. Re:Absurd limit theory by Nutria · · Score: 1

      That means that rollover would occur if they were using seconds and borrowing your numbers, about year 320,000,000,000.

      One of us has a decimal waaaayyyyy off. I think it's you. Some python code:

      >>>
      >>> ticks_per_day = 24 * 3600 * (10**9 / 100)
      >>>
      >>> ticks_per_day
      864000000000
      >>>
      >>>
      >>> days_in_epoch = 2**63 / ticks_per_day
      >>>
      >>> days_in_epoch
      10675199L
      >>>
      >>> years_in_epoch = days_in_epoch / 365.25
      >>>
      >>> years_in_epoch
      29227.101984941819
      >>>
      >>>
      >>> end_of_epoch = 1858 + years_in_epoch
      >>>
      >>> end_of_epoch
      31085.101984941819
      >>>

      So, rollover on approx 07-Feb-31085

      --
      "I don't know, therefore Aliens" Wafflebox1
  47. Re:Yes but Octave by ceoyoyo · · Score: 4, Informative

    So it clones Matlab very well then.

  48. And so ? by Anonymous Coward · · Score: 0

    Mathlab is for doing MATHS, as its name hints. Who cares about integer when you have floating point in the maths world ?

  49. Re:Yes but Octave by Anonymous Coward · · Score: 0

    You should take a look at qtiplot or scidavis. Both programs can create 3d plots and export them to pdf.

    Also, matplotlib (pylab) has some extensions that allow for 3d plotting and can also export to vector formats.

    If you're really serious you could generate the data as an image or vtk file and open it in paraview, which cannot export vector formats, but is a _very_ capable visualization tool.

  50. Re:MATLAB ~= fast by ceoyoyo · · Score: 1

    Only if it uses mostly the functions that are coded in C. If you, god forbid, need to write something of your own, particularly if it includes loops, you're hooped.

  51. Re:64 bit integer plus 64 bit integer equals 65 bi by elashish14 · · Score: 1

    How about subtraction?

    --
    I have left slashdot and am now on Soylent News. FUCK YOU DICE.
  52. Sparse single by Anonymous Coward · · Score: 0

    Heh while we're bitching about MATLAB data types, where are the sparse single matrices?? Bah!!

  53. some people would use it by Khashishi · · Score: 1

    So, maybe most people don't use over 90% of MATLAB's features. Does that mean MATLAB is bloated? Well, the thing is, everyone has different needs, and use a different 10%. Granted, most people have no use for 64 bit integers, but I'm sure somebody does, and somebody is mightily annoyed that their software that cost thousands doesn't do it.

  54. MATLAB? by dsoltesz · · Score: 1

    Huh. People actually use MATLAB outside of academia? All the scientists I know who do hardcore math use FORTRAN or IDL.

  55. GPGPU by Anonymous Coward · · Score: 0

    Actually, Mathworks sent out a call for potential beta testers for GPGPU. I believe they plan on adding it to the parallel computing toolbox. So you'd have to pay extra if you want to access your GFX card for computational stuff. There is currently a free Matlab GPGPU toobox: http://gp-you.org/

    Another thing that annoys me is the deathly slow Java interface in Matlab. Even with a fast 3D card it can take ages to manipulate complex 3-D plots.

    1. Re:GPGPU by Anonymous Coward · · Score: 0

      The best interface for GPU computing in MATLAB is available from AccelerEyes http://www.accelereyes.com with their Jacket product. It has GPU support for way more functions than than GP-You or the Mathworks beta, including support for all the linear algebra functions. It also has multi-GPU support and performance optimizations (lazy evaluation, optimized JIT compiler, etc) that none of the others have. Also, there is a Graphics Toolbox in Jacket for seamless vizualization of GPU computations in true OpenGL rendered windows. The Mathworks beta and GP-YOU have none of these features.

  56. Re:Yes but Octave by Vyse+of+Arcadia · · Score: 4, Informative

    3D data is all but ungraphable on Linux systems anyway, so I suppose Octave is not alone here.

    As I recall, MATLAB has a Linux port. As does Maple, Mathematica, et cetera. And Mayavi is an open source program capable of excellent 3D graphics that works with Python, and therefore SciPy.

    So what you really mean is that 3D data graphing is inadequate with Octave and gnuplot on any system. 3D data is perfectly graphable in Linux.

  57. Circular Logic by Obsolete+Disks · · Score: 3, Funny

    What do we do when the value of 1 starts to float away?
    QT/Octave:

    >>> sqrt(-1)^((4)^1)
    ans = 1
    >>> sqrt(-1)^((4)^15)
    ans = 1
    >>> sqrt(-1)^((4)^16)
    ans = 1.0000e+00 - 2.6298e-07i
    >>> sqrt(-1)^((4)^17)
    ans = 1.0000e+00 - 1.0519e-06i
    >>> sqrt(-1)^((4)^21)
    ans = 1.0000e+00 - 2.6929e-04i
    >>> sqrt(-1)^((4)^22)
    ans = 0.9999994 - 0.0010772i
    >>> sqrt(-1)^((4)^32)
    ans = 0.56253 + 0.82678i
    >>> sqrt(-1)^((4)^40)
    ans = -0.97448 + 0.22446i

    The fractal community will be outraged.

    1. Re:Circular Logic by Anonymous Coward · · Score: 0

      just tried that with matlab...

      >> sqrt(-1)^((4)^511)
      ans =
                1
      >> sqrt(-1)^((4)^512)
      ans =
                  NaN + NaNi

    2. Re:Circular Logic by Born2bwire · · Score: 1

      realmax

      ans =

          1.7977e+308

      >> 4^511

      ans =

          4.4942e+307

      So Matlab can keep powering up i correctly until you try to overflow. I don't think that is as egregious as Octave's problem.

    3. Re:Circular Logic by highegg · · Score: 1

      Interesting. However, since Octave just uses std::complex for this operation, I suppose it's the problem of libc's cpow. I don't think this is serious, but you can file a bug there. In any case I support the opinion that attempting to workaround every possible libc math defect would make Octave too bloated to be maintainable.

    4. Re:Circular Logic by JSBiff · · Score: 1

      I have a question:

      Why use libc for math *at all*, in the first place? Is this a source-portability thing?

      If there are so many libc math defects that "attempting to workaround every possible libc math defect would make Octave too bloated to be maintainable", isn't the proper response to either switch to, or design and implement a different portable math library which doesn't have those defects? Or, perhaps, work with the libc maintainers to fix all those defects?

    5. Re:Circular Logic by Mindcontrolled · · Score: 1

      Careful there. Reckless playing with things like that can very well release the Many-Angled Ones from their fractal prisons. You do not want that to happen. At least not while you are in the vicinity.

      --
      Ubi solitudinem faciunt, pacem appellant.
    6. Re:Circular Logic by Anonymous Coward · · Score: 0

      Yet my HP50g calculator gets all of those right.
      Go figure.

  58. Give me your lunch money by Anonymous Coward · · Score: 0

    pssh, you guys are a bunch of nerds

  59. Maybe they lost the source code by cathryn · · Score: 1

    And are afraid to tell anyone. Another possibility is they fired 'the guy' who knows how everything works and now they can only make cosmetic changes.

    --
    http://junglevision.com -- Shamus for Gameboy
  60. Re:64 bit integer plus 64 bit integer equals 65 bi by MichaelSmith · · Score: 1

    I recall reading an article back when 16 bit CPUs were a new thing which promoted the idea that 8 bit CPUs were superior for text processing because text was basically 7 bits.

  61. Re:64 bit integer plus 64 bit integer equals 65 bi by Anonymous Coward · · Score: 1, Informative

    I'm hoping that is a joke

    Joke or not, it's reality for anyone dealing with fixed point math. You have to go through your entire algorithm and decide which bits are worth keeping and how many you need. Things like Hamming windows don't like it when an accumulator overflows.

    So you have to figure out how many numbers you're adding, take ceil(log2(N)) of that, and that's how many extra bits you need, or more to the point, how many high bits that the input data can't use. If N gets really big, that can cut way into a 32-bit integer. Trying to drop least-significant bits at various points in the vector raises your noise floor, decreasing your SNR (the noise looks like regularly-spaced impulses, too, which can hurt a clock-recovery algorithm). Also, this bit-eating effect cascades.

    Multiplication is even worse: you get as many bits out as the sum of the bit counts in; 32x32 => 64.

    As for Matlab... so what. Seriously. Matlab went for a very long time supporting only double precision floats (heck, it went a long time only supporting 2-D matrices). Other types were only supported in I/O; they got converted to doubles internally. They added 8-bit integers to make the video processing people happy back in the days of 3dfx. Then they added floats because some people wanted to trade precision for storage space, and integers because the fixed-point simulation stuff was getting hard to do. It's really a case study of a 90% solution.

    For 18 years, I've worked at a research lab that swears by Matlab. (Though their recent licensing costs have us moving a lot of stuff to Python, and we tried Octave but dumped it because we couldn't migrate to it because they were missing key features that they didn't believe they needed. Our sponsors don't pay us to drop everything to learn Octave's internals, write patches to support what we need, and fight Octave politics to get those patches in.) And in all that time, the number of times I've seen anyone use integer arithmetic... is zero.

    The vastly larger dynamic range, and logarithmic scaling, of double-precision floating point worked just peachy. Slow and memory hogging at times, to be sure. But we could crank out test algorithms in Matlab far faster than C++. Now... Python, NumPy, matplotlib... we're slowly moving over.

    Python is a far more serious language than Matlab. Matlab is a hacking language like BASIC. It's lousy to manage a big project with. Seriously, one file equals one function? A class is a directory starting with an @? And there's no way to do select(), so we can't hook it up to our TCP/IP sockets and serial ports at the same time? And we're paying how much?

    If you're serious, develop your algorithm in Python. 90% of the time, it'll be fast enough; the other times, you were going to have to write it in C or C++ anyway, and if you wrote your code in Python, your code will be far closer to C or C++ than if you wrote in Matlab. You'll never worry about licensing. Forget Octave and Matlab. And don't get me started on Matlab-to-C compiler. (Short version: if your program is read-compute-write-terminate, it might work for you. If it's event driven, forget it.)

  62. Re:Yes but Octave by wsloand · · Score: 2, Insightful

    You should check out some of the newer versions of Octave. The graphics in versions 3.0 and 3.2 are very much improved. (Disclosure: I was an active Octave developer a couple of years ago.)

  63. Re:64 bit integer plus 64 bit integer equals 65 bi by LostCluster · · Score: 1

    If 64-bit integer A is less than 64-bit integer B, where are you going to hide the negative sign?

  64. Re:Yes but Octave by Anonymous Coward · · Score: 1, Informative

    3D data not graphable on linux. Are you kidding? Try Visit from LLNL, freeware and enables
    analysis of multi-terabyte datasets on either single or multi-core systems. Other options exist,
    such as Paraview or Mayavi2, both of which are free. All of these offer python scriptable
    interfaces. In fact, I'd be wonder why anybody would want to use any kind of commercial
    software, or anything related to Octave for data analysis today.

  65. 64-bit INT, not float. Design choice, not bug by goodmanj · · Score: 4, Interesting

    Two things:

    1) This is true for 64-bit INTEGERS. The default data type for MATLAB is a 64-bit float, and has been forever.

    2) This is a design decision by MATLAB's designers. You don't have to declare or type variables in MATLAB: you just set a = 5 and a new variable "a" is created. You set a(2) = 3, and now a grows into a 1-d array.

    It's a handy feature and a core aspect of MATLAB's ease-of-use design, but to do this, you need to have a default data type.

    64-bit float is the best choice: you can represent any number up to around 4,503,599,627,370,496 without error. For practical purposes, this means MATLAB will work fine for any real-world integer counting task: it only fails if you're interested in cryptography, primes, or other discrete math tasks, in which case you're not using MATLAB anyway.

  66. Re:Yes but Octave by TerranFury · · Score: 2, Insightful

    I don't know what you mean; you can do a lot with handle graphics in MATLAB...

  67. Re:Yes but Octave by Anonymous Coward · · Score: 0

    So it clones Matlab very well then.

    Matlab 3D plots are usable, things like surface plots are about as easy to code as 2D plots (i.e. they're one command), and you can just drag the 3D graph around until the camera is where you want it. So, no, Octave doesn't clone Matlab very well.

  68. Re:Yes but Octave by zero-point-infinity · · Score: 1

    And this is a real problem ... how exactly? Using MATLAB for courses consisted almost entirely of writing scripts and typing a few commands into the prompt. (I presume that we did something involving the GUI at some point but it evidently wasn't memorable.) The only real benefit I gained from MATLAB having a GUI was that they implemented a better terminal than I'd expect to find otherwise on the uni's windows machines. I don't bother installing an octave GUI because it makes about as much sense as installing a GUI for ksh.

  69. Re:Yes but Octave by zero-point-infinity · · Score: 1

    Actually, you're probably best off dumping your data to text and then running gnuplot (or whatever plotting tool you prefer) separately. Octave has problems submiting to gnuplot that simply don't pop up when I use gnuplot directly or through a perl script (e.g. finding fonts when exporting to png which is what prompted me to try separating out plotting in the first place).

  70. Well... by Anonymous Coward · · Score: 0

    Commercial 64 and 128 bit computing has been reserved for military/intelligence work for some time and they don't let this thing get out in the public quickly.

  71. Re:MATLAB ~= fast by Warlord88 · · Score: 2, Interesting

    Few weeks back, I implemented a simple Monte Carlo simulation in C++ as well as Matlab. C++ was about 50 times faster than Matlab. The problem with Matlab is painfully slow FOR loops whereas the advantage is fast array arithmetic. Many people with traditional programming background do not know how to make use of the latter. There are several special tricks and functions which allow fast computations up to some level. However, if there is no way you can bypass the running of a FOR loop million times, you will get screwed in Matlab.

  72. Re:64 bit integer plus 64 bit integer equals 65 bi by Anonymous Coward · · Score: 0

    No, it's a carry. Adding a number with the 63rd bit set to a number with the 63rd bit set is an overflow.

  73. Re:Yes but Octave by kestasjk · · Score: 1

    For a program like octave, having no GUI is very forgiveable. There is really no way to work with the system outside of prompt commands. Even Matlab is very prompt based.

    What is unforgivable in Octave's case is its graphing capabilities. Octave used Gnuplot for drawing which basically means it is stuck in the 1990s when it comes to making plots. 3D plots are slow, difficult and complicated things to create. Animations are out of the question. 99% of the time, you're better off exporting to png (itself a nighmare), and animating from those. 3D data is all but ungraphable on Linux systems anyway, so I suppose Octave is not alone here.

    I think it's

    echo "set term png; set output 'plot.png'; splot 'data.txt'" > gnuplot

    gnuplot could be better (the documentation isn't great, a well designed GUI to get you started would be nice), but it's not too bad. With imagemagick's convert and a bit of shell scripting you could get some animation going without too much fuss.

    Really I've never come across a graphing solution which made me think "wow, this system has got it right", not in stats packages, langauge libraries/packages, spreadsheet apps, math systems, graphing apps, nowhere. I'm not sure why that is, but I guess it must just be hard to model something that has to be so flexible in a neat way.

    --
    // MD_Update(&m,buf,j);
  74. A view from Octave developer by highegg · · Score: 5, Informative

    Being the guy who implemented the proper 64-bit arithmetics support in Octave 3.2, I can maybe share some interesting points. Matlab's design choice of double as the default type is both a blessing and a curse. Usually the blessing strikes you first (I always disliked it that 1/2 is 0 in C++ and Python, finally Python 3 changed that as well), but you start to feel the curse when diving deeper, and integer arithmetics (which I agree is far less used than floating point) is a perfect example. Initially, Matlab probably had no integers. Given that double is the default, Matlab creators decided to make the integers "intrusive", in the sense that integers combined with reals result in integers, not reals, contrary to most other languages. The motivation is probably so that you can write things like a + 1 or 2*a without a silent conversion. Hence, when I is integer, D is double and OP is any operator, I OP D behaves like int (double (I) OP D). Except that things like a + 1 seem to be optimized (something Octave currently lacks, but it shouldn't be hard to do). int64 is where things start to get messy, because not all 64-bit integers can be exactly represented in double. So, using the simple formula above, 0.5 * i64 could occassionally do something else that i64 / 2, which is highly undesirable. In order to do the "right thing", Octave will choose one of two options: first, if it discovers that "long double" is at least 80-bits wide (so that it can hold any 64-bit integers), it will use that to do the operations. If not, it will employ a custom code to emulate the operation as if it was performed with enough precision. It's based on manipulating the mantissa and exponent of the double and is much slower. Although it was kinda fun to implement it, it is really a lot of work for too little music, so that can partially explain MathWorks' attitude to this. Unlike Octave, MathWorks doesn't really need to aim at source portability (as they just distribute binaries), so maybe they're just waiting for proper long double support in all compilers they use, and then they will just use the simple approach. Or maybe they're waiting for some important future design change. When I implemented this, I was fully aware that it's not a killer feature, yet I thought it may make Octave more interesting to some Matlab users. So I'm glad someone noticed :) In any case, I suppose at some point Matlab will support this as well.

  75. slashumiliation by pikine · · Score: 1

    It's a slashumiliation, or humiliation by slashdotting.

    --
    I once had a signature.
  76. Re:Yes but Octave by orzetto · · Score: 4, Interesting

    That's funny. I am researcher and work with math and plotting software on a professional basis, and even when I need Matlab to do the work (e.g. if I have to use nlinfit), I always prefer to export the data to .mat and plot in Octave. Gnuplot's output generally looks better when exported to EPS/PDF.

    Gnuplot does not allow to do GUI editing: that's a big plus, because I am forced, every time, to write a script: I know that if I don't write it, I will miss it later when I want to change something (it always happens). Also, it is much easier in Octave to specify a font (-F:Palatino, for example) than in Matlab: possibly not on top of your list of priorities, but when I wrote my PhD thesis I wanted to write everything with the same font: Matlab plots require you to edit the EPS source.

    3D plots are slow, difficult and complicated things to create.

    Curious. I just published an article with several 3D plots (which I usually eschew), and it was not really more difficult to get things done in Octave than in Matlab.

    3D data is all but ungraphable on Linux systems anyway

    I call bullshit, you never really tried. Have a look at matplotlib. And, that aside, Matlab is available on Linux too.

    --
    Victims of 9/11: <3000. Traffic in the US: >30,000/y
  77. Re:MATLAB ~= fast by flowerchicken12 · · Score: 1

    If you want raw speed, you don't code in Matlab. Simple.

    It depends. To develop for Matlab is much faster. Matlab code can be very fast if you do certain things (size matrices beforehand and vectorize all code).

    I usually write the program in Matlab, try to speed it up in Matlab (vectorize, etc...) and then start writing Mex scripts to replace slow parts. I also try to get it working in Octave - for the simple reason that Matlab licenses are often limited to one per PC (instead of one per core) and it makes simulations slow.

  78. hi by tommydesai · · Score: 0

    Well, having to go dig an additional library to add native types is a bit paradoxal isn't it ? Even more when the software cost a lot of money and is directed at engineers. http://welcome-to-croatia.com/

  79. It's called a "Carry Bit" by Anonymous Coward · · Score: 0

    not "overflow error". The carry bit is in the conditions register that all self respecting CPUs use for conditional branching and instructions like "add with carry". It's nothing to do with 64 bit, as the same concept works for 8 bit processors.

  80. more reasons to use Octave... by cfriedt · · Score: 1

    Other examples of where Octave has much better potential than Matlab are:

    1) Calling matlab-like matrix functions from another programming language.
    2) Using Octave on an architecture other than x86.
    3) Using Octave on mobile devices.

  81. I agree by Anonymous Coward · · Score: 0

    I used Matlab extensively during my PhD (Physics), but am now switching to Python (and slowly rewriting all my code). I started because of the ridiculous licensing for Matlab, but continue because Python just has fewer stupid bugs like the submission talks about. The only thing I miss about Matlab is the extensive documentation all collected in one place and presented nicely.

  82. Re:MATLAB ~= fast by Anonymous Coward · · Score: 1, Funny

    My scientific language of choice is MS Excel. What's a double?

  83. Re:Yes but Octave by Anonymous Coward · · Score: 0

    Matlab's plotting isn't good at all. Try some 3D plot and you'll see that the axis labels has a life of their own. It also cuts off the image if your label is to large (even in 2D).

    In the scientific community, Linux is the best choice by far. You have anything windows has and more. I have not seen any commercial software that isn't available for linux and mac as well.
    And Octave does have a GUI. (qtoctaave)

  84. Dynamic typing by janwedekind · · Score: 2, Informative

    Myself I am developing HornetsEye which is a Ruby-extension for doing computer vision.
    The problem with supporting various types is that you end up with a lot of possible combinations when doing computations. I.e. say if you want to support arrays of 8-, 16-, 32-, and 64-bit integers (signed and unsigned) as well as 32-bit and 64-bit floating point, you have 10 ** 2 possible combinations of types when element-wise adding two arrays.
    If speed is not an issue however, you could just use Ruby's dynamic typing. Ruby's integer classes use dynamic typing in their computations in order to avoid numeric overflow:

    ( 10 ** 2 ).class
    # Fixnum
    ( 10 ** 10 ).class
    # Bignum

    Also you can seamlessly combine rational numbers, big numbers, complex numbers, and matrices in a seamless way which is really neat:

    require 'mathn'
    2/4
    # 1/2
    ( Complex::I / 2 ) ** 3
    # Complex(0, -1/8)
    1 / 2 + Complex::I / 3
    # Complex(1/2, 1/3)
    ( 1 / 2 + Complex::I / 3 ) ** 5
    # Complex(-199/2592, 61/3888)
    ( 1 / 2 + Complex::I / 3 ) ** 24
    # Complex(584824319281/4738381338321616896, 161741277005/32905425960566784)
    a = Matrix[ [ 2 / 3, 3 / 4 ], [ 4 / 5, 5 / 6 ] ]
    # Matrix[[2/3, 3/4], [4/5, 5/6]]
    b = a.inv
    # Matrix[[-75/4, 135/8], [18, -15]]
    a * b
    # Matrix[[1, 0], [0, 1]]

  85. Re:Yes but Octave by TheTurtlesMoves · · Score: 1

    R plotting is better than both. There is zero problems with large 3D datasets. I do it all the time. On Linux.

    --
    The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
  86. Re:Yes but Octave by Anonymous Coward · · Score: 0

    QTIplot. It's open source. Pre-compiled binaries are free on LinuxMacOSX and require a small support license on Windows. The graphing capabilities of this program are quite good.

  87. Re:64-bit INT, not float. Design choice, not bug by Anonymous Coward · · Score: 0

    I make it twice that - 9,007,199,254,740,992. 52-bit mantissa, plus hidden '1' bit = all 53-bit numbers, so you can go up to (and including) 2^53. The next representable is 2^53 + 2.

  88. Re:Yes but Octave by Anonymous Coward · · Score: 1, Informative

    > 3D data is all but ungraphable on Linux systems anyway,

    ? eh, you must be looking very hard in the wrong place.

    for one, try Paraview.
    for two, try VisIt.
    for three, there are many more like that ... (including my favorite)

  89. Re:Yes but Octave by Anonymous Coward · · Score: 0

    There's been talk about matplotlib with octave since 2005. What's the current state?

  90. Re:Yes but Octave by MrCrassic · · Score: 1

    I'm not an advanced math researcher or scientist, so my experience with MATLAB and Octave has been somewhat limited. However, when I did my multivariable calculus and linear algebra homework, I found Octave to be just as easy to use as MATLAB and it did not plot graphs any slower than MATLAB did, even in 3D.

  91. Re:Yes but Octave by ceoyoyo · · Score: 1

    Gnuplot can do quite a lot too.

    Now, Matplotlib, in Python, was designed to clone the MatLab plotting facilities. Then someone tied it into vtk..

  92. Nintendo 64 by tepples · · Score: 1

    It has taken much longer for consumer OSes to be 64-bit by default, but that's just because there was no need for it until >3-4GB of memory became common.

    Even the statically linked "operating system" in a Nintendo 64 game console? That thing had only 4 MB of RAM and thus used 32-bit pointers, but it was still 64-bit.

    There's no need for 64-bit Flash like there was for 64-bit MySQL/SQL Server/Oracle etc

    Perhaps that's why a lot of Flash games still appear to be stuck in the 16-bit era of 2D.

    1. Re:Nintendo 64 by kestasjk · · Score: 1

      Even the statically linked "operating system" in a Nintendo 64 game console? That thing had only 4 MB of RAM and thus used 32-bit pointers, but it was still 64-bit.

      And the XBOX was 32-bit, and no-one really used the 64-bit ints in n64 games. 64-bit has no real application to 3D (except 64-bit floating point, which isn't really associated with "64-bit processer" since 32-bit processors usually have 64-bit floating point).

      The fact it's called the "N64" should tell you the real reason they wanted 64-bit ints; back then bits were like clock speed, and people didn't realize you get diminishing returns.

      Perhaps that's why a lot of Flash games still appear to be stuck in the 16-bit era of 2D.

      Just like XBOX1, and the majority of PC games that even today are shipped as 32-bit? Bit size has nothing to do with 3D graphics, Flash doesn't have 3D because it doesn't have a decent way to make good use of 3D hardware.

      --
      // MD_Update(&m,buf,j);
  93. Re:Yes but Octave by Anonymous Coward · · Score: 0

    It is much easier in Octave to specify a font (-F:Palatino, for example) than in Matlab: possibly not on top of your list of priorities, but when I wrote my PhD thesis I wanted to write everything with the same font: Matlab plots require you to edit the EPS source.

    I call 'bullshit' right back. =] There's an aptly-named "FontName" text property in MATLAB.

    --
    x = linspace(0, 3*pi);
    y = sin(x);
    plot(x, y);
    text(pi/2, 1, 'Maximum at \pi/2', 'FontName', 'Palatino');
    --

  94. let me just say... by grep_rocks · · Score: 1

    I hate matlab - there I said it, it is an abomination, no types so when you look at a piece of matlab code you have no freaking idea what it is supposed to do - is that variable an array, an int a float, data structure? who knows? variables appear out of nowhere - aaagh! just stop it already and learn a real language.... the five minutes you think you save using matlab ends up costing 5 hours to someone else who wants to use it.

  95. Re:MATLAB ~= fast by Anonymous Coward · · Score: 0

    Depends on the task - on vector and matrix operations Matlab is about as fast as FORTRAN (or C) but function calls, thus recursions are slow. I had one highly recursive algorithm that ran 1000 to 10000x (stet!) faster in C. Our Matlab field rep.couldn't believe it, asked for the Matlab code so he could "optimize" it. Never heard back from him... To give it its due, Matlab is one hellova a number grinder / matrix manipulation language, just don't try to use a use a Honda S2000 as a dump truck.

  96. Idiot? by Anonymous Coward · · Score: 0

    'What is the point of having numerical data types that can't be manipulated?'"

    How about the point is you can store the result of two 32-bit numbers being added or multiplied? Moron?

  97. i require 128bit floats you insensitive clod (lol) by Anonymous Coward · · Score: 0

    yes, thats right, my dynamical systems are so sensitive to perturbation in their initial conditions that i require quad prec, i need 128bit floats (you insensitive clod). the intel fortran compiler supports 128bit floats, aka quad precision, with their compiler ifort. But their _optimised_ version of lapack in their mkl (math kernel library) doesnt handle 128bit floats properly. ive tried handing gemm real*16's and gotten nonsense answers, im guessing that the optimized code does even realise its been given a different data type and interpreting the quad prec's as double's and only reading the first (or last depending on machine arch) half.

    intel processors have incorporated 80bit registers in the fps for some time. (the itanium has more i believe).

    so real*10 should be fully supported and run at fully optimised native speed, but i can accept a slow down with quad prec, but if its supported by the compiler why not allow the mkl to make use of it. i havent benchmarked the speed difference either but im interested now. i might just grab some netlib codes for gemm aand compile them with real*16

  98. just the other day i ran up against by Anonymous Coward · · Score: 0

    the limit of defining arrays with more than 7 dimensions in the latest ifort, to be stored with hdf5.
    it kinda weired me out to get the error msg back from the compiler that _any_ number of dimensions was not supported. i mean sure with an array of doubles, at 4bytes per element a 8 dimensional array with 1:10 extent in each dimension is going to require a mere 382meg. so why cant i declare such a variable on my machine with 4gig?

  99. 1/2 = 0.5? by Anonymous Coward · · Score: 0

    Matlab's one and only numerical data type is actually a matrix of complex numbers.

  100. The answer is Python by mangu · · Score: 1

    I challenge anybody to beat matlab (or maybe IDL) when you want to whip together an image processing algorithm and prove it out.

    challenge accepted

    Why learn one language for image processing algorithms when you still have to learn other languages to do everything else? Better have one language that does everything.

  101. Re:Yes but Octave by Anonymous Coward · · Score: 0

    The graphics in versions 3.0 and 3.2 are very much improved.

    No doubt they are (3.2 is the only Octave version I've used so I can't compare against the older version), but they still look like crap compared to Matlab. Gnuplot does OK with 2-D (line) graphs, but its surfaces just look awful. Also, Matlab's graphics handles give you complete control over the appearance of every item in the plot (including call-back functions for user interaction). This level of control simply isn't possible with Octave.

    -JS

  102. iPhone/iPod calc does 64-bit integers by perpenso · · Score: 1

    If you really want this support, get the user contributed package from matlab central. That wasn't too hard was it?

    Disclaimer: I'm the dev, but I'm surprised that an iPhone/iPod calculator manages to do what MatLab does not:
    Perpenso Calc, decimal arithmetic, 20 decimal digits, fractions, complex numbers, RPN

  103. CAR ANALOGY TIME!!! by Tetsujin · · Score: 1

    It is like saying if I put a Ferrari engine in a Chevy Suburban, it will perform as well as if i put it in a Ferrari.

    Another way of putting it might be to say that, while both vehicles would then use the same engine, the Ferrari uses code structure recognition heuristics to optimize the sequence of calls it makes to the engine, while the Chevy takes a simpler approach to generating its sequence of calls.

    I may not have made a very good analogy at all, I'm afraid...

    --
    Bow-ties are cool.
  104. Engineer vs. Scientist by Sheikh_Nim · · Score: 1

    The difference is for Engineers versus Scientists. Engineers, who I would argue are far more likely to use MATLAB, have 0 need (with 0 being less than eps) for 64-bit integers because you will never ever ever ever measure data with accuracy of 1 part in 9,007,199,254,740,992, or anywhere near that. And as a rule, we have no need for integers because measured data and functions of measured data are much better represented using floating point. Scientists, who do work in absolutes, would have this need, but I would argue that they would not use MATLAB anyways and use something like Mathematica because it can do all calculations without losing any accuracy.

  105. The subject line should not be your comment. by Tetsujin · · Score: 1

    Ever.

    --
    Bow-ties are cool.
  106. Re:Yes but Octave by TerranFury · · Score: 1

    What I meant in particular was that, since the plotting facilities are tied closely to MATLAB, it's possible to do things like build interactive simulations, and do real-time animation. AFAIK the only way to do animated plots with Octave+GNUplot is to pre-generate a sequence and then play it back like a movie, which would leave much to be desired. That said, I have admittedly not invested much time in trying to get GNUplot to do this sort of thing so it may actually be possible; if it is I wouldn't mind a pointer to e.g. a tutorial.

    Python+matplotlib seemed very promising though. I liked them when I tried that combo out, but not enough to switch (mainly, MATLAB's matrix/array syntax is kind of wonderful).

    I'm sometimes tempted to just use some nice C++ math libraries and do everything there, though; code can be an order of magnitude faster or more than either Python or MATLAB. E.g., a one-off script to solve a particular PDE took about 10 minutes to run in MATLAB (it was stuff that couldn't be vectorized well); nearly identical C++ code ran in about 10 seconds. Likewise (another example), for a project in planning algorithms for a class I was auditing, one team implemented a very clever algorithm in Python and another did something more naive in C++; the C++ team's planner was much faster despite being "dumber" simply because of the interpreter overhead that the Python team was saddled with. So I'm tempted by combos like C++ with the 'eigen' library.

  107. Re:Yes but Octave by ceoyoyo · · Score: 1

    No need to use C++ exclusively, just write your algorithm in it and use one of the wrapping methods to make it available in Python. You get C speed and Python ease.

    You can do the same thing in MatLab, of course, but I found MatLab wrapping a lot more work than even by-hand wrapping for Python, and there are a variety of tools to help out with the latter, all the way up to fully automatic.

  108. SmallBASIC by Anonymous Coward · · Score: 0

    As of version 0.10.6, SmallBASIC can do 64bit operations and it supports many math functions - http://smallbasic.sf.net

  109. Matlab's numerical algorithms are better by Petronius+Arbiter · · Score: 1

    I have a project that is not 'most work'. Matlab solves matrix problems for me that neither Mathematica nor any other package I've tried can. Matlab's competence shows in its description of mldivide, which is the key to my problem. It says that it tries A unless condition B is true, in which case it tries C, .... Mathematica says, trust us because we're so smart, with 1000s of routines, 1000000s of LOC etc. w/o going into details. All the free packages are jokes in this area. The only competition would be perhaps some C++ library. However Matlab probably hired its author to extend it for them.

    Open SW is nice if you're not picky, but the commercial stuff, in many cases, does specialized things better.

  110. Start array indices at 2 by Anonymous Coward · · Score: 0

    I want an option in Matlab to start its array indexing at 2. Then I'll start using it.

  111. Only if you don't loop by marcosdumay · · Score: 1

    Put a loop on your code, and you'll see how Mathlab craws. It slows down more than proportionaly to the number of iterations.

  112. Re:MATLAB ~= fast by joe_frisch · · Score: 1

    For a lot of applications, speed isn't the limit, development time is. I use Matlab a lot (I'm an accelerator physicist), and most of the time the programs run almost instantly on a modern computer. I'm mostly interested in a language that lets me develop quickly. I almost never use integers so the lack of 64 bit integer arithmetic isn't a problem - didn't even know about the lack until seeing this.

    I've tried Scilab, Octave and Python for this sort of use, but I've found Matlab best meets my requirements - but of course depending on the the application, different languages will be superior.

  113. Re:MATLAB ~= fast by Anonymous Coward · · Score: 0

    That's a good point. The system should care about doubles for a scientist in the field other than engineering and cs, or the caring should be optional.

  114. Re:MATLAB ~= fast by dunc78 · · Score: 1

    There are many ways to avoid for loops in MATLAB. If there isn't a way to avoid the for loop it is usually because of the number of operations that are going on in the loop. If that many operations are going on in the for loop than the overhead of the for loop is diluted.

  115. Re:MATLAB ~= fast by dunc78 · · Score: 1

    Depending on the Monte-Carlo simulation, I will have one iteration of the "for" loop execute many iterations of the Monte-Carlo. If I can't do this, than typically the overhead of the for loop isn't that significant.

  116. Re:MATLAB ~= fast by ceoyoyo · · Score: 1

    The point is, MatLab is very slow. MatLab functions that are written in C are pretty much as fast as C (they really should be) but MatLab itself is very slow, just like any other interpreted language.

    In general having a bigger loop is not faster than a smaller one. The overhead isn't in the loop, it's in the interpreter having to reinterpret each go around, unless it happens to be a hybrid interpreter that actually figures out the loop, compiles it, then runs it (like Java).

    The speed of MatLab is only comparable to that of C if you're running canned MatLab C functions. If you have to write any sizeable amounts of code that MatLab actually has to interpret, it will be slow. That's most obvious with a loop but also plays a role even without loops, for large enough programs.

  117. Re:Yes but Octave by Anonymous Coward · · Score: 0

    There is a QT based GUI for Octave avilable at
    http://qtoctave.wordpress.com/
    I tried it just out of interest some time ago and it looked ok to me, but then I had other things to do and did not really use it.

    Also there is EIDMAT
    http://eidmat.wordpress.com/ or
    http://sourceforge.net/projects/eidmat/
    but I did not try it

  118. Re:Yes but Octave by Anonymous Coward · · Score: 0

    Also check out QTOctave
    http://qtoctave.wordpress.com/
    and EIDMAT
    http://eidmat.wordpress.com/
    http://sourceforge.net/projects/eidmat/

  119. Re:In other news... by cynyr · · Score: 1

    Actully i blame the manufacture, they could get a mainline kernel driver for the cost of a unit of hardware. www.linuxdriverproject.org. Ohh look free driver development, now why haven't they done it yet? ohh right they don't care.

    --
    All of the above was encrypted with a Quad ROT-13 method. Unauthorized decryption is in violation of the DMCA.
  120. Toad's Infinite Integer Math by Toad-san · · Score: 1

    Sigh ... sure wish I hadn't lost that source code. Back in '86 or so, Turbo Pascal and 8086 assembly language (oh yeah!) ... Toad's Infinite Integer Math. You could do all the basic math functions (add, subtract, multiply, divide, roots, powers) on integers whose length was only limited by the storage on your hard drive :-) Basically a calculator with a HUGE display screen :-) And with the largest numbers you can imagine treated as nice clean pure integers, no steenking floating point for us, unh unh! (Hell, my motherboard didn't even HAVE a math chip! Probably a Z-80 as I recall.)

    Yeah, huge arrays of bytes, and simple functions that chugged through them, digit by digit :-) Worked great. Russian Peasant Algorithm, that sort of simple stuff, just with LONG numbers. And then a buddy on Usenet who heard about it sent me some more code that did some higher level math (logarithms and I forget what all; I'm no mathematician, just knocked it out as a lark).

    Sure was fun, being able to manipulate numbers that were higher than the probably number of atoms in the Solar System, that sort of thing :-) And that was '86, small hard drives, 8-bit processors. Imagine what I could do with that now! Muah hah hah! The mind boggles!

    But the hard drive with the source failed, the backup floppy was corrupted, my correspondent (who possibly had a copy of the source) dropped off the face of the earth, I couldn't find anything on Usenet or the usual sources. Gone gone gone [sob].

    Toad of Toad Hall

  121. Found! by Toad-san · · Score: 1

    Woah! Just did a search (since I hadn't looked for this for years) and ... lo and behold! Found! Discovered! Yesssss!

    http://drn.digitalriver.com/category/Borland-Turbo-Pascal-programming-language/296.html

    Which leads to this download:

    http://drn.digitalriver.com/free-download/Borland-Turbo-Pascal-programming-language/toadlongzip/51197.html

    TOADLONG.ZIP! And it's all there! Enjoy :-)

    (Yes, the old Turbo Pascal compilers are still out there too.)

    Boy, that WAS back in The Day. Check out my old email address :-)

        kirsch@braggvax.ARPA

    Hmmm, I wonder if that's still working?

    Toad

  122. Re:Yes but Octave by Nivag064 · · Score: 1

    Sage has very fast 3d plotting capabilities! http://www.sagemath.org/

  123. Re:MATLAB ~= fast by dunc78 · · Score: 1

    I believe MATLAB isn't strictly interpreted anymore, but instead does just-in-time compilation.