public protocol ElementaryFunctions
ประเภทที่มีฟังก์ชันพื้นฐานให้เลือก
“ฟังก์ชันพื้นฐาน” คือฟังก์ชันที่สร้างขึ้นจากกำลัง ราก เลขชี้กำลัง ลอการิทึม ฟังก์ชันตรีโกณมิติ (sin, cos, tan) และค่าผกผันของฟังก์ชัน และฟังก์ชันไฮเปอร์โบลิก (sinh, cosh, tanh) และความผกผันของฟังก์ชันเหล่านั้น
ความสอดคล้องกับโปรโตคอลนี้หมายความว่า Building Block เหล่านี้ทั้งหมดพร้อมใช้งานเป็นฟังก์ชันคงที่ในประเภท
let x: Float = 1
let y = Float.sin(x) // 0.84147096
รากที่สองของ
x
สำหรับประเภทจริง ถ้าอาร์กิวเมนต์เป็นลบ ผลลัพธ์จะเป็น NaN หรือเกิดความล้มเหลวตามเงื่อนไข สำหรับประเภทที่ซับซ้อน ฟังก์ชันนี้จะมีการตัดกิ่งไปตามแกนจริงลบ
คำประกาศ
static func sqrt(_ x: Self) -> Self
โคไซน์ของ
x
สำหรับประเภทจริง
x
จะถูกตีความว่าเป็นมุมที่วัดเป็นเรเดียนคำประกาศ
static func cos(_ x: Self) -> Self
ไซน์ของ
x
สำหรับประเภทจริง
x
จะถูกตีความว่าเป็นมุมที่วัดเป็นเรเดียนคำประกาศ
static func sin(_ x: Self) -> Self
แทนเจนต์ของ
x
คำประกาศ
static func tan(_ x: Self) -> Self
ฟังก์ชันเอคอส
คำประกาศ
static func acos(_ x: Self) -> Self
ฟังก์ชันอาซิน
คำประกาศ
static func asin(_ x: Self) -> Self
ฟังก์ชันอาทาน
คำประกาศ
static func atan(_ x: Self) -> Self
ฟังก์ชัน cosh
คำประกาศ
static func cosh(_ x: Self) -> Self
ฟังก์ชันไซน์
คำประกาศ
static func sinh(_ x: Self) -> Self
ฟังก์ชันทานห์
คำประกาศ
static func tanh(_ x: Self) -> Self
ฟังก์ชันอะโคช
คำประกาศ
static func acosh(_ x: Self) -> Self
ฟังก์ชันอาซิน
คำประกาศ
static func asinh(_ x: Self) -> Self
ฟังก์ชันอะทานห์
คำประกาศ
static func atanh(_ x: Self) -> Self
ฟังก์ชันประสบการณ์
คำประกาศ
static func exp(_ x: Self) -> Self
ฟังก์ชัน exp2
คำประกาศ
static func exp2(_ x: Self) -> Self
ฟังก์ชัน exp10
คำประกาศ
static func exp10(_ x: Self) -> Self
ฟังก์ชัน expm1
คำประกาศ
static func expm1(_ x: Self) -> Self
ฟังก์ชั่นบันทึก
คำประกาศ
static func log(_ x: Self) -> Self
ฟังก์ชัน log2
คำประกาศ
static func log2(_ x: Self) -> Self
ฟังก์ชัน log10
คำประกาศ
static func log10(_ x: Self) -> Self
ฟังก์ชัน log1p
คำประกาศ
static func log1p(_ x: Self) -> Self
exp(y log(x))
คำนวณโดยไม่สูญเสียความแม่นยำระดับกลางสำหรับชนิดจำนวนจริง ถ้า
x
เป็นลบ ผลลัพธ์จะเป็น NaN แม้ว่าy
จะมีค่าเป็นจำนวนเต็มก็ตาม สำหรับประเภทที่ซับซ้อน จะมีการตัดกิ่งบนแกนจริงลบคำประกาศ
static func pow(_ x: Self, _ y: Self) -> Self
x
ยกกำลังn
คำประกาศ
static func pow(_ x: Self, _ n: Int) -> Self
รากที่
n
ของx
สำหรับชนิดจำนวนจริง ถ้า
x
เป็นลบ และn
เป็นคู่ ผลลัพธ์จะเป็น NaN สำหรับประเภทที่ซับซ้อน จะมีการตัดกิ่งตามแกนจริงลบคำประกาศ
static func root(_ x: Self, _ n: Int) -> Self