int64 in simulink / stateflow?

3 views (last 30 days)
Milan
Milan on 4 Sep 2013
Answered: Andy Bartlett on 10 Sep 2020
Hi,
I'm working on a simulink model using stateflow charts, there is no option to declare variables to be of the int64 datatype. When I attempt to use int64(var), it gives me an error saying "Cast to 'int64' class is not supported".
Is there a workaround to this that will allow me to use int64 variables in my model?

Answers (2)

ES
ES on 4 Sep 2013
Matlab supports int64 whereas Simulink/Stateflow does not.
Workaround will be to use two int32 variables.
so your expected value will be UpperInt32Variable * LowerInt32Variable.
You can increment UpperInt32Variable every time the LowerInt32Variable overflows.
  1 Comment
Milan
Milan on 4 Sep 2013
Edited: Milan on 4 Sep 2013
I am multiplying 2 32 bit numbers...what is the correct procedure to multiply 2 32 bit numbers without using a 64 bit variable? I would just get an overflow if the result of the multiplication was higher than 2^31 right?
What is the correct procedure/algorithm to multiply 2 32 bit numbers and store the high 32 bits in one 32 bit variable and low 32 bits in a second 32 bit variable

Sign in to comment.


Andy Bartlett
Andy Bartlett on 10 Sep 2020
Update: 64 bit integer modeling in Stateflow is now available.
Stateflow C support of int64 and uint64 is available as of R2019b.
Stateflow M support of int64 and uint64 is available as of R2020a.
As a side note,
when discussing usage of 64 bit integers in Simulink,
the question of required licenses often comes up.
In R2016b and earlier,
use of 64 bit integers in Simulink requires a Fixed-Point Designer license.
As of R2017a,
usage of 64 bit integers in Simulink does not require any additional licenses.

Categories

Find more on Complex Logic in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!