| from langchain_core.tools import tool |
| import cmath |
| import math |
|
|
| @tool |
| def add(a: int, b: int) -> int: |
| """ |
| Adds two numbers. |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a + b |
|
|
| @tool |
| def sub(a: int, b: int) -> int: |
| """ |
| Subracts two numbers. |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a - b |
|
|
| @tool |
| def mul(a: int, b: int) -> int: |
| """ |
| multiplies two numbers. |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a * b |
|
|
| @tool |
| def div(a: int, b: int) -> float: |
| """ |
| divides two numbers and gave float as a result |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a / b |
|
|
| @tool |
| def floor_div(a: int, b: int) -> int: |
| """ |
| divides two numbers and gave integr as a result |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a // b |
|
|
| @tool |
| def square(a: int) -> int: |
| """ |
| returns square of the number |
| Args: |
| a (integer): the number |
| """ |
| return a * a |
|
|
| @tool |
| def mod(a: int, b: int) -> int: |
| """ |
| Modulus of two numbers. |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a % b |
|
|
| @tool |
| def pow(a: int, b: int) -> int: |
| """ |
| Get the power of two numbers |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return a ** b |
|
|
| @tool |
| def square_root(a: int): |
| """ |
| Square root of the number |
| Args: |
| a (integer): the number |
| """ |
| if a < 0: |
| return cmath.sqrt(a) |
| else: |
| return a ** 0.5 |
|
|
| @tool |
| def absolute(a: int) -> int: |
| """ |
| returns absolute value of the number |
| Args: |
| a (integer): the number |
| """ |
| return a if a >= 0 else -a |
|
|
| @tool |
| def gcd(a: int, b: int) -> int: |
| """ |
| returns gcd of two numbers using recursion |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| if b == 0: |
| return a |
| return gcd(b, a % b) |
|
|
| @tool |
| def lcm(a: int, b: int) -> int: |
| """ |
| returns lcm of two numbers |
| Args: |
| a (integer): the first number |
| b (integer): the second number |
| """ |
| return absolute(a * b) // gcd(a, b) |
|
|
| @tool |
| def factorial(a: int) -> int: |
| """ |
| returns factorial of a number |
| Args: |
| a (integer): the number |
| """ |
| if a <= 1: |
| return 1 |
| return a * factorial(a - 1) |
|
|