Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
c6e22902
Kaydet (Commit)
c6e22902
authored
Ara 04, 1998
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added Doc strings -- by Chris Petrilli.
üst
13fdf5e9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
216 additions
and
67 deletions
+216
-67
cmathmodule.c
Modules/cmathmodule.c
+119
-17
mathmodule.c
Modules/mathmodule.c
+97
-50
No files found.
Modules/cmathmodule.c
Dosyayı görüntüle @
c6e22902
...
@@ -48,6 +48,12 @@ static Py_complex c_acos(x)
...
@@ -48,6 +48,12 @@ static Py_complex c_acos(x)
c_sqrt
(
c_diff
(
c_1
,
c_prod
(
x
,
x
))))))));
c_sqrt
(
c_diff
(
c_1
,
c_prod
(
x
,
x
))))))));
}
}
static
char
c_acos_doc
[]
=
"acos(x)
\n
\
\n
\
Return the arc cosine of x."
;
static
Py_complex
c_acosh
(
x
)
static
Py_complex
c_acosh
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -55,6 +61,12 @@ static Py_complex c_acosh(x)
...
@@ -55,6 +61,12 @@ static Py_complex c_acosh(x)
c_sqrt
(
c_diff
(
c_1
,
c_prod
(
x
,
x
))))));
c_sqrt
(
c_diff
(
c_1
,
c_prod
(
x
,
x
))))));
}
}
static
char
c_acosh_doc
[]
=
"acosh(x)
\n
\
\n
\
Return the hyperbolic cosine of x."
;
static
Py_complex
c_asin
(
x
)
static
Py_complex
c_asin
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -62,24 +74,48 @@ static Py_complex c_asin(x)
...
@@ -62,24 +74,48 @@ static Py_complex c_asin(x)
c_sqrt
(
c_diff
(
c_1
,
c_prod
(
x
,
x
)))))));
c_sqrt
(
c_diff
(
c_1
,
c_prod
(
x
,
x
)))))));
}
}
static
char
c_asin_doc
[]
=
"asin(x)
\n
\
\n
\
Return the arc sine of x."
;
static
Py_complex
c_asinh
(
x
)
static
Py_complex
c_asinh
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
return
c_neg
(
c_log
(
c_diff
(
c_sqrt
(
c_sum
(
c_1
,
c_prod
(
x
,
x
))),
x
)));
return
c_neg
(
c_log
(
c_diff
(
c_sqrt
(
c_sum
(
c_1
,
c_prod
(
x
,
x
))),
x
)));
}
}
static
char
c_asinh_doc
[]
=
"asinh(x)
\n
\
\n
\
Return the hyperbolic arc sine of x."
;
static
Py_complex
c_atan
(
x
)
static
Py_complex
c_atan
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
return
c_prod
(
c_i2
,
c_log
(
c_quot
(
c_sum
(
c_i
,
x
),
c_diff
(
c_i
,
x
))));
return
c_prod
(
c_i2
,
c_log
(
c_quot
(
c_sum
(
c_i
,
x
),
c_diff
(
c_i
,
x
))));
}
}
static
char
c_atan_doc
[]
=
"atan(x)
\n
\
\n
\
Return the arc tangent of x."
;
static
Py_complex
c_atanh
(
x
)
static
Py_complex
c_atanh
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
return
c_prod
(
c_half
,
c_log
(
c_quot
(
c_sum
(
c_1
,
x
),
c_diff
(
c_1
,
x
))));
return
c_prod
(
c_half
,
c_log
(
c_quot
(
c_sum
(
c_1
,
x
),
c_diff
(
c_1
,
x
))));
}
}
static
char
c_atanh_doc
[]
=
"atanh(x)
\n
\
\n
\
Return the hyperbolic arc tangent of x."
;
static
Py_complex
c_cos
(
x
)
static
Py_complex
c_cos
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -89,6 +125,12 @@ static Py_complex c_cos(x)
...
@@ -89,6 +125,12 @@ static Py_complex c_cos(x)
return
r
;
return
r
;
}
}
static
char
c_cos_doc
[]
=
"cos(x)
\n
\
\n
\
Return the cosine of x."
;
static
Py_complex
c_cosh
(
x
)
static
Py_complex
c_cosh
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -98,6 +140,12 @@ static Py_complex c_cosh(x)
...
@@ -98,6 +140,12 @@ static Py_complex c_cosh(x)
return
r
;
return
r
;
}
}
static
char
c_cosh_doc
[]
=
"cosh(x)
\n
\
\n
\
Return the hyperbolic cosine of x."
;
static
Py_complex
c_exp
(
x
)
static
Py_complex
c_exp
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -108,6 +156,12 @@ static Py_complex c_exp(x)
...
@@ -108,6 +156,12 @@ static Py_complex c_exp(x)
return
r
;
return
r
;
}
}
static
char
c_exp_doc
[]
=
"exp(x)
\n
\
\n
\
Return the exponential value e**x."
;
static
Py_complex
c_log
(
x
)
static
Py_complex
c_log
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -118,6 +172,12 @@ static Py_complex c_log(x)
...
@@ -118,6 +172,12 @@ static Py_complex c_log(x)
return
r
;
return
r
;
}
}
static
char
c_log_doc
[]
=
"log(x)
\n
\
\n
\
Return the natural logarithm of x."
;
static
Py_complex
c_log10
(
x
)
static
Py_complex
c_log10
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -128,6 +188,13 @@ static Py_complex c_log10(x)
...
@@ -128,6 +188,13 @@ static Py_complex c_log10(x)
return
r
;
return
r
;
}
}
static
char
c_log10_doc
[]
=
"log10(x)
\n
\
\n
\
Return the base-10 logarithm of x."
;
/* internal function not available from Python */
static
Py_complex
c_prodi
(
x
)
static
Py_complex
c_prodi
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -137,6 +204,7 @@ static Py_complex c_prodi(x)
...
@@ -137,6 +204,7 @@ static Py_complex c_prodi(x)
return
r
;
return
r
;
}
}
static
Py_complex
c_sin
(
x
)
static
Py_complex
c_sin
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -146,6 +214,12 @@ static Py_complex c_sin(x)
...
@@ -146,6 +214,12 @@ static Py_complex c_sin(x)
return
r
;
return
r
;
}
}
static
char
c_sin_doc
[]
=
"sin(x)
\n
\
\n
\
Return the sine of x."
;
static
Py_complex
c_sinh
(
x
)
static
Py_complex
c_sinh
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -155,6 +229,12 @@ static Py_complex c_sinh(x)
...
@@ -155,6 +229,12 @@ static Py_complex c_sinh(x)
return
r
;
return
r
;
}
}
static
char
c_sinh_doc
[]
=
"sinh(x)
\n
\
\n
\
Return the hyperbolic sine of x."
;
static
Py_complex
c_sqrt
(
x
)
static
Py_complex
c_sqrt
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -181,6 +261,12 @@ static Py_complex c_sqrt(x)
...
@@ -181,6 +261,12 @@ static Py_complex c_sqrt(x)
return
r
;
return
r
;
}
}
static
char
c_sqrt_doc
[]
=
"sqrt(x)
\n
\
\n
\
Return the square root of x."
;
static
Py_complex
c_tan
(
x
)
static
Py_complex
c_tan
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -202,6 +288,12 @@ static Py_complex c_tan(x)
...
@@ -202,6 +288,12 @@ static Py_complex c_tan(x)
return
r
;
return
r
;
}
}
static
char
c_tan_doc
[]
=
"tan(x)
\n
\
\n
\
Return the tangent of x."
;
static
Py_complex
c_tanh
(
x
)
static
Py_complex
c_tanh
(
x
)
Py_complex
x
;
Py_complex
x
;
{
{
...
@@ -223,6 +315,11 @@ static Py_complex c_tanh(x)
...
@@ -223,6 +315,11 @@ static Py_complex c_tanh(x)
return
r
;
return
r
;
}
}
static
char
c_tanh_doc
[]
=
"tanh(x)
\n
\
\n
\
Return the hyperbolic tangent of x."
;
/* And now the glue to make them available from Python: */
/* And now the glue to make them available from Python: */
...
@@ -281,23 +378,28 @@ FUNC1(cmath_tan, c_tan)
...
@@ -281,23 +378,28 @@ FUNC1(cmath_tan, c_tan)
FUNC1
(
cmath_tanh
,
c_tanh
)
FUNC1
(
cmath_tanh
,
c_tanh
)
static
char
module_doc
[]
=
"This module is always available. It provides access to mathematical
\n
\
functions for complex numbers."
;
static
PyMethodDef
cmath_methods
[]
=
{
static
PyMethodDef
cmath_methods
[]
=
{
{
"acos"
,
cmath_acos
,
1
},
{
"acos"
,
cmath_acos
,
1
,
c_acos_doc
},
{
"acosh"
,
cmath_acosh
,
1
},
{
"acosh"
,
cmath_acosh
,
1
,
c_acosh_doc
},
{
"asin"
,
cmath_asin
,
1
},
{
"asin"
,
cmath_asin
,
1
,
c_asin_doc
},
{
"asinh"
,
cmath_asinh
,
1
},
{
"asinh"
,
cmath_asinh
,
1
,
c_asinh_doc
},
{
"atan"
,
cmath_atan
,
1
},
{
"atan"
,
cmath_atan
,
1
,
c_atan_doc
},
{
"atanh"
,
cmath_atanh
,
1
},
{
"atanh"
,
cmath_atanh
,
1
,
c_atanh_doc
},
{
"cos"
,
cmath_cos
,
1
},
{
"cos"
,
cmath_cos
,
1
,
c_cos_doc
},
{
"cosh"
,
cmath_cosh
,
1
},
{
"cosh"
,
cmath_cosh
,
1
,
c_cosh_doc
},
{
"exp"
,
cmath_exp
,
1
},
{
"exp"
,
cmath_exp
,
1
,
c_exp_doc
},
{
"log"
,
cmath_log
,
1
},
{
"log"
,
cmath_log
,
1
,
c_log_doc
},
{
"log10"
,
cmath_log10
,
1
},
{
"log10"
,
cmath_log10
,
1
,
c_log10_doc
},
{
"sin"
,
cmath_sin
,
1
},
{
"sin"
,
cmath_sin
,
1
,
c_sin_doc
},
{
"sinh"
,
cmath_sinh
,
1
},
{
"sinh"
,
cmath_sinh
,
1
,
c_sinh_doc
},
{
"sqrt"
,
cmath_sqrt
,
1
},
{
"sqrt"
,
cmath_sqrt
,
1
,
c_sqrt_doc
},
{
"tan"
,
cmath_tan
,
1
},
{
"tan"
,
cmath_tan
,
1
,
c_tan_doc
},
{
"tanh"
,
cmath_tanh
,
1
},
{
"tanh"
,
cmath_tanh
,
1
,
c_tanh_doc
},
{
NULL
,
NULL
}
/* sentinel */
{
NULL
,
NULL
}
/* sentinel */
};
};
...
@@ -306,7 +408,7 @@ initcmath()
...
@@ -306,7 +408,7 @@ initcmath()
{
{
PyObject
*
m
,
*
d
,
*
v
;
PyObject
*
m
,
*
d
,
*
v
;
m
=
Py_InitModule
(
"cmath"
,
cmath_methods
);
m
=
Py_InitModule
3
(
"cmath"
,
cmath_methods
,
module_doc
);
d
=
PyModule_GetDict
(
m
);
d
=
PyModule_GetDict
(
m
);
PyDict_SetItemString
(
d
,
"pi"
,
PyDict_SetItemString
(
d
,
"pi"
,
v
=
PyFloat_FromDouble
(
atan
(
1
.
0
)
*
4
.
0
));
v
=
PyFloat_FromDouble
(
atan
(
1
.
0
)
*
4
.
0
));
...
...
Modules/mathmodule.c
Dosyayı görüntüle @
c6e22902
...
@@ -109,40 +109,63 @@ math_2(args, func)
...
@@ -109,40 +109,63 @@ math_2(args, func)
return
PyFloat_FromDouble
(
x
);
return
PyFloat_FromDouble
(
x
);
}
}
#define FUNC1(stubname, func) \
#define FUNC1(stubname, func
, docstring_name, docstring
) \
static PyObject * stubname(self, args) PyObject *self, *args; { \
static PyObject * stubname(self, args) PyObject *self, *args; { \
return math_1(args, func); \
return math_1(args, func); \
}
}\
static char docstring_name [] = docstring;
#define FUNC2(stubname, func) \
#define FUNC2(stubname, func
, docstring_name, docstring
) \
static PyObject * stubname(self, args) PyObject *self, *args; { \
static PyObject * stubname(self, args) PyObject *self, *args; { \
return math_2(args, func); \
return math_2(args, func); \
}
}\
static char docstring_name [] = docstring;
FUNC1
(
math_acos
,
acos
)
FUNC1
(
math_asin
,
asin
)
FUNC1
(
math_acos
,
acos
,
math_acos_doc
,
FUNC1
(
math_atan
,
atan
)
"acos(x)
\n\n
Return the arc cosine of x."
)
FUNC2
(
math_atan2
,
atan2
)
FUNC1
(
math_asin
,
asin
,
math_asin_doc
,
FUNC1
(
math_ceil
,
ceil
)
"asin(x)
\n\n
Return the arc sine of x."
)
FUNC1
(
math_cos
,
cos
)
FUNC1
(
math_atan
,
atan
,
math_atan_doc
,
FUNC1
(
math_cosh
,
cosh
)
"atan(x)
\n\n
Return the arc tangent of x."
)
FUNC1
(
math_exp
,
exp
)
FUNC2
(
math_atan2
,
atan2
,
math_atan2_doc
,
FUNC1
(
math_fabs
,
fabs
)
"atan2(x)
\n\n
Return atan(x /y)."
)
FUNC1
(
math_floor
,
floor
)
FUNC1
(
math_ceil
,
ceil
,
math_ceil_doc
,
FUNC2
(
math_fmod
,
fmod
)
"ceil(x)
\n\n
Return the ceiling of x as a real."
)
FUNC2
(
math_hypot
,
hypot
)
FUNC1
(
math_cos
,
cos
,
math_cos_doc
,
FUNC1
(
math_log
,
log
)
"cos(x)
\n\n
Return the cosine of x."
)
FUNC1
(
math_log10
,
log10
)
FUNC1
(
math_cosh
,
cosh
,
math_cosh_doc
,
"cosh(x)
\n\n
Return the hyperbolic cosine of x."
)
FUNC1
(
math_exp
,
exp
,
math_exp_doc
,
"exp(x)
\n\n
Return e raised to the power of x."
)
FUNC1
(
math_fabs
,
fabs
,
math_fabs_doc
,
"fabs(x)
\n\n
Return the absolute value of the real x."
)
FUNC1
(
math_floor
,
floor
,
math_floor_doc
,
"floor(x)
\n\n
Return the floor of x as a real."
)
FUNC2
(
math_fmod
,
fmod
,
math_fmod_doc
,
"fmod(x,y)
\n\n
Return x % y."
)
FUNC2
(
math_hypot
,
hypot
,
math_hypot_doc
,
"hypot(x,y)
\n\n
Return the Euclidean distance, sqrt(x*x + y*y)."
)
FUNC1
(
math_log
,
log
,
math_log_doc
,
"log(x)
\n\n
Return the natural logarithm of x."
)
FUNC1
(
math_log10
,
log10
,
math_log10_doc
,
"log10(x)
\n\n
Return the base-10 logarithm of x."
)
#ifdef MPW_3_1
/* This hack is needed for MPW 3.1 but not for 3.2 ... */
#ifdef MPW_3_1
/* This hack is needed for MPW 3.1 but not for 3.2 ... */
FUNC2
(
math_pow
,
power
)
FUNC2
(
math_pow
,
power
,
math_pow_doc
,
"power(x,y)
\n\n
Return x**y."
)
#else
#else
FUNC2
(
math_pow
,
pow
)
FUNC2
(
math_pow
,
pow
,
math_pow_doc
,
"pow(x,y)
\n\n
Return x**y."
)
#endif
#endif
FUNC1
(
math_sin
,
sin
)
FUNC1
(
math_sin
,
sin
,
math_sin_doc
,
FUNC1
(
math_sinh
,
sinh
)
"sin(x)
\n\n
Return the sine of x."
)
FUNC1
(
math_sqrt
,
sqrt
)
FUNC1
(
math_sinh
,
sinh
,
math_sinh_doc
,
FUNC1
(
math_tan
,
tan
)
"sinh(x)
\n\n
Return the hyperbolic sine of x."
)
FUNC1
(
math_tanh
,
tanh
)
FUNC1
(
math_sqrt
,
sqrt
,
math_sqrt_doc
,
"sqrt(x)
\n\n
Return the square root of x."
)
FUNC1
(
math_tan
,
tan
,
math_tan_doc
,
"tan(x)
\n\n
Return the tangent of x."
)
FUNC1
(
math_tanh
,
tanh
,
math_tanh_doc
,
"tanh(x)
\n\n
Return the hyperbolic tangent of x."
)
static
PyObject
*
static
PyObject
*
...
@@ -162,6 +185,12 @@ math_frexp(self, args)
...
@@ -162,6 +185,12 @@ math_frexp(self, args)
return
Py_BuildValue
(
"(di)"
,
x
,
i
);
return
Py_BuildValue
(
"(di)"
,
x
,
i
);
}
}
static
char
math_frexp_doc
[]
=
"frexp(x)
\n
\
\n
\
Return the matissa and exponent for x. The mantissa is positive."
;
static
PyObject
*
static
PyObject
*
math_ldexp
(
self
,
args
)
math_ldexp
(
self
,
args
)
PyObject
*
self
;
PyObject
*
self
;
...
@@ -182,6 +211,12 @@ math_ldexp(self, args)
...
@@ -182,6 +211,12 @@ math_ldexp(self, args)
return
PyFloat_FromDouble
(
x
);
return
PyFloat_FromDouble
(
x
);
}
}
static
char
math_ldexp_doc
[]
=
"ldexp_doc(x, i)
\n
\
\n
\
Return x * (2**i)."
;
static
PyObject
*
static
PyObject
*
math_modf
(
self
,
args
)
math_modf
(
self
,
args
)
PyObject
*
self
;
PyObject
*
self
;
...
@@ -206,39 +241,51 @@ math_modf(self, args)
...
@@ -206,39 +241,51 @@ math_modf(self, args)
return
Py_BuildValue
(
"(dd)"
,
x
,
y
);
return
Py_BuildValue
(
"(dd)"
,
x
,
y
);
}
}
static
char
math_modf_doc
[]
=
"modf(x)
\n
\
\n
\
Return the fractional and integer parts of x. Both results carry the sign
\n
\
of x. The integer part is returned as a real."
;
static
PyMethodDef
math_methods
[]
=
{
static
PyMethodDef
math_methods
[]
=
{
{
"acos"
,
math_acos
},
{
"acos"
,
math_acos
,
0
,
math_acos_doc
},
{
"asin"
,
math_asin
},
{
"asin"
,
math_asin
,
0
,
math_asin_doc
},
{
"atan"
,
math_atan
},
{
"atan"
,
math_atan
,
0
,
math_atan_doc
},
{
"atan2"
,
math_atan2
},
{
"atan2"
,
math_atan2
,
0
,
math_atan2_doc
},
{
"ceil"
,
math_ceil
},
{
"ceil"
,
math_ceil
,
0
,
math_ceil_doc
},
{
"cos"
,
math_cos
},
{
"cos"
,
math_cos
,
0
,
math_cos_doc
},
{
"cosh"
,
math_cosh
},
{
"cosh"
,
math_cosh
,
0
,
math_cosh_doc
},
{
"exp"
,
math_exp
},
{
"exp"
,
math_exp
,
0
,
math_exp_doc
},
{
"fabs"
,
math_fabs
},
{
"fabs"
,
math_fabs
,
0
,
math_fabs_doc
},
{
"floor"
,
math_floor
},
{
"floor"
,
math_floor
,
0
,
math_floor_doc
},
{
"fmod"
,
math_fmod
},
{
"fmod"
,
math_fmod
,
0
,
math_fmod_doc
},
{
"frexp"
,
math_frexp
},
{
"frexp"
,
math_frexp
,
0
,
math_frexp_doc
},
{
"hypot"
,
math_hypot
},
{
"hypot"
,
math_hypot
,
0
,
math_hypot_doc
},
{
"ldexp"
,
math_ldexp
},
{
"ldexp"
,
math_ldexp
,
0
,
math_ldexp_doc
},
{
"log"
,
math_log
},
{
"log"
,
math_log
,
0
,
math_log_doc
},
{
"log10"
,
math_log10
},
{
"log10"
,
math_log10
,
0
,
math_log10_doc
},
{
"modf"
,
math_modf
},
{
"modf"
,
math_modf
,
0
,
math_modf_doc
},
{
"pow"
,
math_pow
},
{
"pow"
,
math_pow
,
0
,
math_pow_doc
},
{
"sin"
,
math_sin
},
{
"sin"
,
math_sin
,
0
,
math_sin_doc
},
{
"sinh"
,
math_sinh
},
{
"sinh"
,
math_sinh
,
0
,
math_sinh_doc
},
{
"sqrt"
,
math_sqrt
},
{
"sqrt"
,
math_sqrt
,
0
,
math_sqrt_doc
},
{
"tan"
,
math_tan
},
{
"tan"
,
math_tan
,
0
,
math_tan_doc
},
{
"tanh"
,
math_tanh
},
{
"tanh"
,
math_tanh
,
0
,
math_tanh_doc
},
{
NULL
,
NULL
}
/* sentinel */
{
NULL
,
NULL
}
/* sentinel */
};
};
static
char
module_doc
[]
=
"This module is always available. It provides access to the
\n
\
mathematical functions defined by the C standard."
;
DL_EXPORT
(
void
)
DL_EXPORT
(
void
)
initmath
()
initmath
()
{
{
PyObject
*
m
,
*
d
,
*
v
;
PyObject
*
m
,
*
d
,
*
v
;
m
=
Py_InitModule
(
"math"
,
math_methods
);
m
=
Py_InitModule
3
(
"math"
,
math_methods
,
module_doc
);
d
=
PyModule_GetDict
(
m
);
d
=
PyModule_GetDict
(
m
);
if
(
!
(
v
=
PyFloat_FromDouble
(
atan
(
1
.
0
)
*
4
.
0
)))
if
(
!
(
v
=
PyFloat_FromDouble
(
atan
(
1
.
0
)
*
4
.
0
)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment