File size: 2,584 Bytes
f64893d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
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)
|