A while back I’ve started a journey called **Fluttering Dart** in which I explored Dart programming language fundamentals one must get in touch with, in order to build robust Flutter applications.

It’s a journey that most people with a bit of programming experience can take.

When I got to explore functions in Dart, the first thing that came to my mind to use as an example was Albert Einstein’s famous formula:

E = mc²

It states that the energy (*E*) can be calculated as the mass (*m*) multiplied by the speed of light (*c*) squared.

I started to search for a nice way to present the formula and translate it into a Dart function and stumbled upon this:

The physics and math behind are explained very well in the above article and I’ll be focusing on writing and explaining the equivalent code.

When I first had the idea I was thinking to use DartPad. At that time it supported only the Dart code. Meanwhile, DartPad evolved and now can also run Flutter code which will make things nicer.

## Dart

The console Dart only version I wrote when I first had the idea is:

import 'dart:math' as Math;double kTonTNTInJoules = 4184000000000;

double c = 299792458;

int fatMan = 21;FunctionE= (double m) =>m* Math.pow(c,2);num joulesToKTonTNT(num val) => val/(kTonTNTInJoules*fatMan);void main() {

doubleyourCatsWeight= 4.1; //in kg

print('Your cat has ${joulesToKTonTNT(E(yourWeight)).toStringAsFixed(2)} times more explosive energy than a bomb that destroyed an entire city…');

}

Above we first import the Dart’s core math library then define some constants: the number of Joules in one kiloton of TNT (**T**ri**N**itro**T**oluene) — **kTonTNTInJoules**, a better approximation of the speed of light — **c**, and the number of kilotons of TNT that a well known atomic bomb had — **fatMan**.

We then define the function that will calculate **mc²**

We also define a function that will transform the energy (measured in Joules) into kilotons of TNT.

In the **main** body I defined my cat’s weight and displayed the result:

`Your cat has `**4193.86** times more explosive energy than a bomb that destroyed an entire city…

The DartPad version can be played with here:

## Flutter

Moving on to Flutter, the code becomes:

Regarding the logic behind it, the code goes about the same as the previous one.

I changed the example to use the most powerful atomic bomb to be ever detonated in the history of human kind: the Tsar Bomba.

I also provided with the option to switch weight units between **kilograms** (kg) and **pounds** (lbs). When the pounds unit is chosen the weight must be first converted in kilograms and that is what the **getMass** function does.

The result is displayed either when pressing on the **Calculate** button, or when **Enter** key is pressed and the weight input is in focus.

The DartPad version can be played with here (using Google Chrome is recommended):

If you want to read more about functions in Dart, you can do that here:

I hope this example got you intrigued and you’ll calculate the explosive energy you’ve stored inside of you.

Next time you feel tired just think of that. :)

Tha(nk|t’)s all!