AWK - Arithmetic Functions


Advertisements

AWK has the following built-in arithmetic functions −

atan2(y, x)

It returns the arctangent of (y/x) in radians. The following example demonstrates this −

Example

[jerry]$ awk 'BEGIN {
   PI = 3.14159265
   x = -10
   y = 10
   result = atan2 (y,x) * 180 / PI;
   
   printf "The arc tangent for (x=%f, y=%f) is %f degrees\n", x, y, result
}'

On executing this code, you get the following result −

Output

The arc tangent for (x=-10.000000, y=10.000000) is 135.000000 degrees

cos(expr)

This function returns the cosine of expr, which is expressed in radians. The following example demonstrates this −

Example

[jerry]$ awk 'BEGIN {
   PI = 3.14159265
   param = 60
   result = cos(param * PI / 180.0);

   printf "The cosine of %f degrees is %f.\n", param, result
}'

On executing this code, you get the following result −

Output

The cosine of 60.000000 degrees is 0.500000.

exp(expr)

This function is used to find the exponential value of a variable.

Example

[jerry]$ awk 'BEGIN {
   param = 5
   result = exp(param);
   
   printf "The exponential value of %f is %f.\n", param, result
}'

On executing this code, you get the following result −

Output

The exponential value of 5.000000 is 148.413159.

int(expr)

This function truncates the expr to an integer value. The following example demonstrates this −

[jerry]$ awk 'BEGIN {
   param = 5.12345
   result = int(param)
   
   print "Truncated value =", result
}'

On executing this code, you get the following result −

Truncated value = 5

log(expr)

This function calculates the natural logarithm of a variable.

Example

[jerry]$ awk 'BEGIN {
   param = 5.5
   result = log (param)
   
   printf "log(%f) = %f\n", param, result
}'

On executing this code, you get the following result −

Output

log(5.500000) = 1.704748

rand

This function returns a random number N, between 0 and 1, such that 0 <= N < 1. For instance, the following example generates three random numbers

Example

[jerry]$ awk 'BEGIN {
   print "Random num1 =" , rand()
   print "Random num2 =" , rand()
   print "Random num3 =" , rand()
}'

On executing this code, you get the following result −

Output

Random num1 = 0.237788
Random num2 = 0.291066
Random num3 = 0.845814

sin(expr)

This function returns the sine of expr, which is expressed in radians. The following example demonstrates this −

Example

[jerry]$ awk 'BEGIN {
   PI = 3.14159265
   param = 30.0
   result = sin(param * PI /180)

   printf "The sine of %f degrees is %f.\n", param, result
}'

On executing this code, you get the following result −

Output

The sine of 30.000000 degrees is 0.500000.

sqrt(expr)

This function returns the square root of expr.

Example

[jerry]$ awk 'BEGIN {
   param = 1024.0
   result = sqrt(param)
   
   printf "sqrt(%f) = %f\n", param, result
}'

On executing this code, you get the following result −

Output

sqrt(1024.000000) = 32.000000

srand([expr])

This function generates a random number using seed value. It uses expr as the new seed for the random number generator. In the absence of expr, it uses the time of day as the seed value.

Example

[jerry]$ awk 'BEGIN {
   param = 10
   
   printf "srand() = %d\n", srand()
   printf "srand(%d) = %d\n", param, srand(param)
}'

On executing this code, you get the following result−

Output

srand() = 1
srand(10) = 1417959587
awk_built_in_functions.htm
Advertisements