Single Precision "3D Cartesian Coordinate Rotation (Direction) (Array)"

Hi there
I am using "3D Cartesian Coordinate Rotation (Direction) (Array).vi" but this VI used Double Precision XYZ numbers.
Is there equivalent in Single Precision?
My reason is to save memory space and time. I am already using 64-bits LabVIEW  with 16 GB or RAM.
LabVIEW 2013
Thank you
 Peter

No, unfortunately LabVIEW provides very few Single Precision VIs (see my idea here).  You might have success by reimplementing it yourself (it's just a matrix multiplication - look in the Help), and using the Multicore Analysis and Sparse Matrix Toolkit which does provide both SGL and DBL paralellized forms of most of the Linear Algebra VIs, among other things.

Similar Messages

  • 2D Cartesian Coordinate Rotation bug?

    I am seeing unusual behaviour in a program I'm working on.
    When performing a 2D cartesian rotation, normally things are fine but when I feed it X and Y arrays with zero elements, it seems to "remember" the last set of data sent to it and outputs basically the last set of data instead of size zero arrays.....
    Can anyone reproduce this?  Is this fixed in later versions? I'm using LV 8.2.1, and can't use a different version because the customer insists on it.
    Shane.
    Message Edited by Intaris on 08-12-2008 07:55 AM
    Say hello to my little friend.
    RFC 2323 FHE-Compliant
    Attachments:
    2D Rotate bug.png ‏2 KB

    Shane, I can fully reproduce this in LabVIEW 8.5.1, so I think it is a bug.
    Such a VI should NOT output stale data if the inputs are empty arrays!
    Attached is a demonstration of the problem and workaround using complex math.
    (I strongly prefer using complex data for xy graph. It is so much cleaner. )
    Message Edited by altenbach on 08-12-2008 12:22 PM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    RotateBug.png ‏14 KB
    2d_Rotate_bugMOD.vi ‏23 KB

  • Change polar data to cartesian coordinates

    The txt file is the data get form 2D laser rangefinder, which every 1°capture a obstacle distance information and 180 data in total. Obviously,this is under polar coordinate system.
    first,I would like to change the log file's data under polar coordinate to cartesian coordinates by multiply sin(theta) and cos(theta).second,the result data form 2D array,and then conbine another array which is 1D zero array to form a 3D array.Please tell me how to realize it.
    Thanks
    Attachments:
    01.txt ‏2 KB

    You don't need any trigonometry, just go via complex numbers. Attached is one simple possibility. (note that LabVIEW 8.0 has a single tool to go from "r,theta" to "x,y" in the complex palette). See attached, LabVIEW 7.0.
    You might need to tweak it for the desired definition of the angles (ccw vs. cw)
    Alternatively, there is also a 1D polar to rectangular tool in the "math.. array operations" palette that you could use, just create a ramp for theta and initialize a zero array for Z.
    Message Edited by altenbach on 06-30-2006 12:07 AM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    rangefinder.vi ‏43 KB

  • Storing analog output data in a datatype other than single-precision

    I'm using three PCI-6713 AO cards in a single computer to output 24 channels of data using Labview 6.1. The input terminals of all the analog output VI's are of type single precision (32-bit). The output cards only have 12-bit DAC's, so there is a large amount of information stored that is never used by the cards. Is there a way in Labview to store AO data in another, smaller datatype - such as a 16-bit integer. This would greatly reduce the memory requirements for my application.

    I just figured out the answer to my own question. There isn't an option for binary in the AO Write vi, but if you go down to the AO Buffer Write vi (which is called by AO Write), you can select binary array.
    Thanks for all your help.
    Josh

  • How can I use FlexMotion vector move function for cartesian coordinate system to other coordinate.

    I have problem with convesion from cartesian coordinate system to other one. I need use standard move function for example blend to moving 2 arms manipulator. What i need to do?

    The vector move will probably not give the results you are looking for. The vector move calculates the trajectory based on unit vectors in cartesian space. For a 2 arm robot (ex. 2 rotation joints), you would be able to move from point A to point B as desired, however the path would not be a straight line. The path may also not be suitable for the mechanism, which could cause a collision or maybe a singularity.
    The best solution is probably the contour move. You can use the inverse kinematic routine you wrote and send the results to a contour move. Contour moves are a little more complicated to use than the simple one axis or vector moves, however they are also much more flexible. I do not know of any functions already written for your system,
    but it sounds like you are already on the right path.
    Regards,
    Brent Runnels
    Applications Engineer
    National Instruments

  • Single precision conversion

    Can someone explain why doing a floating point conversion compromises digit of precision accuracy? For example, if I wire the double precision number "16.0001000" to the "to Single Precision Float" vi input, the output is "16.0000991". 
    I have an application in which this level of accuracy is critical. I can think of several work arounds, but I still would like a good explanation for why this is the case.
    pmac

    Just use array to spreadsheet string on the DBL and write as text file (and an analogous operation for reading, converting back to DBL). Alternatively, you could make DBL version of "read/write  spreadheet file" by editing them slightly and saving them under a new name elsewhere. Make sure to change the icon too, e.g. give it a different color.
    If precision is that important, you might want to use binary files. The don't have any formatting loss at all.
    Of course if this is just measurement data, don't be fooled by fake precision. even SGL has a 22 bit mantissa, so if your DAQ hardware acqures in 16 bits, SGL is plenty.
    LabVIEW Champion . Do more with less code and in less time .

  • Is there a way to rotate an array on the front panel?

    Is there a way to rotate an array on the front panel?  For example, I want element [0] to be at the bottom of an array that's expanded to show the elements vertically.
    Thanks in advance.

    I do not think that there is any way to make an array control or indicator display that way.
    You might be able to reverse the array, creating an upside down display. If you also need the user to index it, then it gets trickier.  Hide the array index display.  Create another numeric control to look like the index control.  When the value of the new control is changed, subtract the value from the last index of the array and use the difference to index the array.  You may need to adjust by +/-1, so try it to be sure.
    Lynn

  • Writing to spread sheets with more than single precision

    Hi everyone,
    Im recording data by using the write to spread sheet VI in Labview 8,
    it records single precision which is a problem for me as I require greater 
    precision. 
    Are there ways around this issue?
    Thanks
    Solved!
    Go to Solution.

    What do you mean by this? Is it possible for you to post code which only shows what you are trying to explain?
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • Single Precision Floating Point Numbers to Bytes

    Ok here is some code that i have written w hile back with some help from the support staff. It is designed to take in precision floating point numbers that are stored as 4 bytes and convert then to a decimal value. It works off of a udp input string and then also reformats the string. I have the ability to look at up to 4000 parameters from this one udp string. But now what i want to do is do the opposite of what i have written, and also perhaps get rid of the matlab i used in it as well. What i would like to be able to do is input a decimal value and then have it converted in to the 4 byte groupings that make up this decimal nd then have it inputed back in to a single long string witht hat grouping of bytes in the right order. A better explanation of what was done can be found on this website
    http://www.jefflewis.net/XPlaneUDP_8.html
    as the original code followed the "Single Precision Floating Point Numbers and Bytes" example on that site but what i want to do is "Going from Single Precision Floating Point Numbers to Bytes". The site also explains the udp string that is being represented. Also attached is the original code that i am trying to simply reverse.
    Attachments:
    x-plane_udp_master.vi ‏34 KB

    Perhaps what you are doing is an exercise in the programming of the math conversion of the bytes.
    But if you are just interested in getting the conversion done, why not use the typecast function?
    If the bytes happen to be in the wrong order for wherever you need to send the string, then you can use string functions to rearrange them.
    Message Edited by Ravens Fan on 10-02-2007 08:50 PM
    Attachments:
    Example_BD.png ‏3 KB

  • Cast string to single precision

    Hi,
    I try to write a communication between a PC and a DSP which is
    programmed to
    understand some kind of ModBus. I tried to use MBmaster.vi, a freeware
    of AIRtech in the netherlands.
    I was successfull to 90% after a very short time - I get back a string
    from the DSP which makes sense.
    The only problem is to *convert* the 4Byte=8Hex=32Bits(=IEEE754 single
    precision format) into the LabView single precision number it does
    represent .
    In other programming languages like C I think I could do this easily
    on a very low level procedure or with one of these dangerous casts.
    As a newbie to LabView I could not found neither one VI to do this or
    find out which simple combination of VIs could solve the problems.
    Are there any cracks
    here who know *the* easy solution??
    Thanx & Regards
    Urs Bögli

    "Doug (CapeFl)" wrote in message news:<[email protected]>...
    > Did you check the VI functions under Functions>String>Additional
    > String to Number Functions?
    > There are quite a few for converting to/from Hex, etc. I've used them
    > for concatenating 4-bit strings into an 8-bit string (to get an 8-bit
    > byte/word), also converting to/from Hex using some of the VIs I
    > mentioned.
    > Good Luck, Doug
    Dough,
    as a programmer for twenty years I have some problems to understand the way
    labview does work with types and casts - other languages are much clearer about it
    - or have I not found the ultimative help area yet ???
    May I ask you to send me the VI off list?
    thanks
    Urs

  • Single precision constant changes value

    See attached "vi". If I put a double precison numeric on my block diagram, change it to SINGLE precision, then enter the value .001 into it, it adds values to the far right of the decimal. Why is it doing this? I'm using Labview 2011 SP1.
    Solved!
    Go to Solution.
    Attachments:
    precision.vi ‏5 KB

    Posting by phone and just taking a guess.
    The precision is defined in bits and many fractional values don't have an exact decimal translation.
    For example 0.001 cannot be represented exactly in sgl or dbl.
    This is inherent to the floating point representation and not language specific. You simply get the closest possible value. Set it back to DBL and change the format to show 20 decimal digits. Same difference.
    LabVIEW Champion . Do more with less code and in less time .

  • Single precision integer to 8 digit hex string

    I need to convert a single precision integer to a MSB-LSB 8 digit hex string to send to a test machine via RS-232.  So 15 needs to turn into 41700000.  The best I have been able to do is get 15 to turn into 0000000F, which is correct but not in the MSB-LSB format I need.  Any ideas?

    Just typecast the SGL to U32 and format it with %08x.
    Message Edited by altenbach on 05-30-2007 08:49 AM
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    SGL-to-HEXstring.vi ‏8 KB
    SGL-to-HEXstring.png ‏6 KB

  • I am using the dynamic signal analyzer.vi but this vi has the output as single precision. How can I change this to DBL precision?

    I am using the dynamic signal analyzer.vi but this vi has the output as single precision. How can I change this to DBL precision? If I change the representation from single to double in the AI buffer read.vi labview returns ilegal operation and crash. I have labview 5.1 on windows 95 and one AT-MIO16XE50 DAQ board.
    Thanks in advance
    Ricardo.

    Probably by changing the data type that lvdaq.dll expects to write to is causing the crash. I can't test this since I have only 6.1 installed now. In any case, since the daq card is only 16 bits, the single precision is probably adequate for AI Buffer Read. If you do need the greater precision later on, you should be able to change representation in any one of the upper level VIs.

  • Need a single-precision/2-byte conversion tool

    Any one have a utility to convert 4-byte single precision numbers to and from a 2-byte representation?
    I only need 3 digits, with one fractional digit (-14.3, for example).
    Thanks...

    At one time I thought I wanted to do this, but never got around to it.  I did find this information useful, however.
    http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf

  • Cartesian Coordinates

    Ok, let me start by saying that I am really really new to Java programming. For my first coding project (outside of the tutorials) I want to create a 2D Cartesian map. I am at a loss though of where to go next.
    The class I built to hold the user given information is:
    public class GridParameters{
    /* These variables are going to be used to generate the first layer of the
    * program, the grid. For testing purposes the grid origins can be 0,0 with
    * rotation of zero. The scale MUST be greater than 0!*/
    public int originEasting = 0;
    public int originNorthing = 0;
    public int gridRotation = 0;
    public int gridScale = 1;
    Ok... so I guess the first question is: How do I get the user information from the form I created, into these fields? And the second: How would I get the grid displayed on the screen? I know these are broad broad questions, but like I said, I am really new, and just looking for a nod in the right direction.

    Stop, and do this tutorial right now: http://java.sun.com/docs/books/tutorial/2d/index.html

Maybe you are looking for