# name: test/sql/function/numeric/test_trigo.test # description: Test trigonometric function # group: [numeric] statement ok SET default_null_order='nulls_first'; statement ok CREATE TABLE numbers(n DOUBLE) statement ok INSERT INTO numbers VALUES (-42),(-1),(0), (1), (42), (NULL) query I SELECT cast(SIN(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL 917 -841 0 841 -917 query I SELECT cast(SIN(n::smallint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL 917 -841 0 841 -917 query I SELECT cast(SIN(n::integer)*1000 as bigint) FROM numbers ORDER BY n ---- NULL 917 -841 0 841 -917 query I SELECT cast(SIN(n::bigint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL 917 -841 0 841 -917 query I SELECT cast(SIN(n::float)*1000 as bigint) FROM numbers ORDER BY n ---- NULL 917 -841 0 841 -917 query I SELECT cast(SIN(n::double)*1000 as bigint) FROM numbers ORDER BY n ---- NULL 917 -841 0 841 -917 query I SELECT cast(COS(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -400 540 1000 540 -400 query I SELECT cast(COS(n::smallint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -400 540 1000 540 -400 query I SELECT cast(COS(n::integer)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -400 540 1000 540 -400 query I SELECT cast(COS(n::bigint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -400 540 1000 540 -400 query I SELECT cast(COS(n::float)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -400 540 1000 540 -400 query I SELECT cast(COS(n::double)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -400 540 1000 540 -400 query I SELECT cast(TAN(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -2291 -1557 0 1557 2291 query I SELECT cast(TAN(n::smallint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -2291 -1557 0 1557 2291 query I SELECT cast(TAN(n::integer)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -2291 -1557 0 1557 2291 query I SELECT cast(TAN(n::bigint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -2291 -1557 0 1557 2291 query I SELECT cast(TAN(n::float)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -2291 -1557 0 1557 2291 query I SELECT cast(TAN(n::double)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -2291 -1557 0 1557 2291 query I SELECT cast(ATAN(n::tinyint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -1547 -785 0 785 1547 query I SELECT cast(ATAN(n::smallint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -1547 -785 0 785 1547 query I SELECT cast(ATAN(n::integer)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -1547 -785 0 785 1547 query I SELECT cast(ATAN(n::bigint)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -1547 -785 0 785 1547 query I SELECT cast(ATAN(n::float)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -1547 -785 0 785 1547 query I SELECT cast(ATAN(n::double)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -1547 -785 0 785 1547 query I SELECT cast(ASIN(n::tinyint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- -1571 0 1571 query I SELECT cast(ASIN(n::smallint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- -1571 0 1571 query I SELECT cast(ASIN(n::integer)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- -1571 0 1571 query I SELECT cast(ASIN(n::bigint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- -1571 0 1571 query I SELECT cast(ASIN(n::float)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- -1571 0 1571 query I SELECT cast(ASIN(n::double)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- -1571 0 1571 query I SELECT cast(ACOS(n::tinyint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- 3142 1571 0 query I SELECT cast(ACOS(n::smallint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- 3142 1571 0 query I SELECT cast(ACOS(n::integer)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- 3142 1571 0 query I SELECT cast(ACOS(n::bigint)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- 3142 1571 0 query I SELECT cast(ACOS(n::float)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- 3142 1571 0 query I SELECT cast(ACOS(n::double)*1000 as bigint) FROM numbers WHERE n between -1 and 1 ORDER BY n ---- 3142 1571 0 statement error SELECT cast(ASIN(n)*1000 as bigint) FROM numbers ORDER BY n ---- query I SELECT cast(COT(n::tinyint)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n ---- -436 -642 642 436 query I SELECT cast(COT(n::smallint)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n ---- -436 -642 642 436 query I SELECT cast(COT(n::integer)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n ---- -436 -642 642 436 query I SELECT cast(COT(n::bigint)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n ---- -436 -642 642 436 query I SELECT cast(COT(n::float)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n ---- -436 -642 642 436 query I SELECT cast(COT(n::double)*1000 as bigint) FROM numbers WHERE n > 0.1 OR N < -0.1 ORDER BY n ---- -436 -642 642 436 query I SELECT cast(ATAN2(n::tinyint, 42)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -785 -24 0 24 785 query I SELECT cast(ATAN2(n::smallint, 42)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -785 -24 0 24 785 query I SELECT cast(ATAN2(n::integer, 42)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -785 -24 0 24 785 query I SELECT cast(ATAN2(n::bigint, 42)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -785 -24 0 24 785 query I SELECT cast(ATAN2(n::float, 42)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -785 -24 0 24 785 query I SELECT cast(ATAN2(n::double, 42)*1000 as bigint) FROM numbers ORDER BY n ---- NULL -785 -24 0 24 785 statement error select asin(-2); ---- Invalid Input Error: ASIN is undefined outside [-1,1] statement error select acos(-2); ---- Invalid Input Error: ACOS is undefined outside [-1,1] # Hyperbolic trigo functions # ATANH foreach value 1.1 -1.1 statement error select atanh(${value}); ---- Invalid Input Error: ATANH is undefined outside [-1,1] endloop query II select atanh(1), atanh(-1); ---- inf inf query III select atanh(-0.5), atanh(0), atanh(0.5); ---- -0.5493061443340549 0.0 0.5493061443340549 # ACOSH query IIII select acosh(-1), acosh(0), acosh(1), acosh(2); ---- NaN NaN 0.0 1.3169578969248166 # ASINH query III select asinh(-1), asinh(0), asinh(2); ---- -0.881373587019543 0.0 1.4436354751788103 # TANH query IIII select tanh(-0.5), tanh(0), tanh(0.5), tanh(1000); ---- -0.46211715726000974 0.0 0.46211715726000974 1.0 # COSH query IIII select cosh(-1), cosh(0), cosh(1), cosh(1000); ---- 1.5430806348152437 1.0 1.5430806348152437 inf # SINH query IIII select sinh(-1), sinh(0), sinh(1), sinh(1000); ---- -1.1752011936438014 0.0 1.1752011936438014 inf