LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

What LabVIEW does internally while coercion dots appears in block diagram?

What LabVIEW does internally while coercion dots appears in block diagram?
0 Kudos
Message 1 of 4
(2,766 Views)
> What LabVIEW does internally while coercion dots appears in block
> diagram?

The coercion dot indicates a datatype change is taking place. In some
cases, it takes little or no time. A coercion from an unsigned to a
signed integer is essentially free since the same amount of code will be
generated either way, but the condition flags will look different. For
integer to floats, the node will often just load one integer into a
floating point register and no additional storage is needed.

Other times, like with an array, the dot may mean that a new storage
buffer is needed and the dot is equivalent to a coversion bullet.

Does this answer your question?

Greg McKaskle
0 Kudos
Message 2 of 4
(2,766 Views)
Thanks Greg.
Here i want to add something. If i connect a integer to float terminal LabVIEW allocates the memory twice a times unless if i do a proper conversion. As per your s/n it should not allocate a memory for array conversion too. Pls Let me know if it is wrong.
0 Kudos
Message 3 of 4
(2,766 Views)
> Here i want to add something. If i connect a integer to float terminal
> LabVIEW allocates the memory twice a times unless if i do a proper
> conversion. As per your s/n it should not allocate a memory for array
> conversion too. Pls Let me know if it is wrong.

Assuming you are asking, the answer is that it depends on the node, but
built-in objects will typically generate code that doesn't take extra
code for a single integer and float being mixed together. As I
mentioned, arrays are different. There aren't instructions to deal with
an array at a time, and it normally takes another buffer.

A coercion dot generates the same code as an equivalent conversion
block. The real time they are useful is to do conversions at a
different
point in the diagram. For example, if you are producing
integers in a loop, building an arry, then later the array gets
converted into an array of double, using either conversion or coercion
dots, it will use memory for the array of ints, array of doubles, and
some small storage for the scalars in the loop. If you instead do the
conversion inside the loop, the integer array never gets made, and the
total storage is for one array of double, and then an additional scalar
inside the loop.

Greg McKaskle
Message 4 of 4
(2,766 Views)