Thực đơn hướng dẫnMục lục trên trang này

Tiện ích

1 Mô tả

Tài liệu này mô tả một số tính năng và tiện ích chung do thư viện libavutil cung cấp.

2 Cú pháp

Phần này ghi lại cú pháp và định dạng được sử dụng bởi các thư viện và công cụ FFmpeg.

2.1 Trích dẫn và thoát

FFmpeg áp dụng cơ chế trích dẫn và thoát sau đây, trừ khi được chỉ định rõ ràng. Các quy tắc sau được áp dụng:

  • ''' và '\' là các ký tự đặc biệt (tương ứng dùng để trích dẫn và thoát). Ngoài chúng, có thể có các ký tự đặc biệt khác tùy thuộc vào cú pháp cụ thể nơi sử dụng tính năng thoát và trích dẫn.
  • Một ký tự đặc biệt được thoát bằng cách thêm tiền tố ‘\’ vào trước nó.
  • Tất cả các ký tự nằm giữa '''' đều được bao gồm trong chuỗi được phân tích cú pháp. Bản thân ký tự trích dẫn '' không thể được trích dẫn, vì vậy bạn có thể cần phải đóng trích dẫn và thoát khỏi nó.
  • Các khoảng trắng ở đầu và cuối, trừ khi được thoát hoặc được trích dẫn, sẽ bị xóa khỏi chuỗi được phân tích cú pháp.

Lưu ý rằng bạn có thể cần thêm cấp độ thoát thứ hai khi sử dụng dòng lệnh hoặc tập lệnh, điều này phụ thuộc vào cú pháp của ngôn ngữ shell được áp dụng.

Hàm av_get_token được xác định trong libavutil/avstring.h có thể được sử dụng để phân tích mã thông báo được trích dẫn hoặc thoát theo các quy tắc được xác định ở trên.

Công cụ tools/ffescape trong cây nguồn FFmpeg có thể được sử dụng để tự động trích dẫn hoặc thoát khỏi một chuỗi trong tập lệnh.

2.1.1 Ví dụ

  • Thoát khỏi chuỗi Crime d'Amour chứa ký tự đặc biệt ':Crime d\'Amour
  • Chuỗi bên trên chứa một trích dẫn, do đó, ' cần phải thoát khi trích dẫn nó:'Crime d'\''Amour'
  • Bao gồm các khoảng trắng ở đầu hoặc cuối bằng cách sử dụng dấu ngoặc kép:'  this string starts and ends with whitespaces  '
  • Thoát và trích dẫn có thể được trộn lẫn với nhau:' The string '\'string\'' is a string '
  • Để bao gồm chữ '\', bạn có thể sử dụng lối thoát hoặc trích dẫn:'c:\foo' can be written as c:\\foo

2.2 Ngày

Cú pháp được chấp nhận là:

[(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
now

Nếu giá trị là "bây giờ" thì phải mất thời gian hiện tại.

Thời gian là giờ địa phương trừ khi Z được thêm vào, trong trường hợp đó nó được hiểu là UTC. Nếu phần năm-tháng-ngày không được chỉ định thì nó sẽ lấy năm-tháng-ngày hiện tại.

2.3 Khoảng thời gian

Có hai cú pháp được chấp nhận để biểu thị khoảng thời gian.

[-][HH:]MM:SS[.m...]

HH biểu thị số giờ, MM số phút cho tối đa 2 chữ số và SS biểu thị số giây cho tối đa 2 chữ số. m ở cuối biểu thị giá trị thập phân cho SS.

hoặc

[-]S+[.m...][s|ms|us]

S biểu thị số giây, với phần thập phân tùy chọn m. Các hậu tố bằng chữ tùy chọn 's', 'ms' hoặc 'us' biểu thị để diễn giải giá trị tương ứng là giây, mili giây hoặc micro giây.

Trong cả hai biểu thức, tùy chọn ‘-' biểu thị thời lượng âm.

2.3.1 Ví dụ

Các ví dụ sau đây đều là khoảng thời gian hợp lệ:

55

55 giây

0.2

0,2 giây

200ms

200 mili giây, tức là 0,2 giây

200000us

200000 micro giây, tức là 0,2 giây

12:03:45

12 giờ 03 phút 45 giây

23.189

23,189 giây

2.4 Kích thước video

Chỉ định kích thước của video có nguồn, nó có thể là một chuỗi có dạng chiều rộngxheight hoặc tên viết tắt của kích thước.

Các chữ viết tắt sau đây được công nhận:

ntsc

720x480

pal

720x576

qntsc

352x240

qpal

352x288

sntsc

640x480

spal

768x576

film

352x240

ntsc-film

352x240

sqcif

128x96

qcif

176x144

cif

352x288

4cif

704x576

16cif

1408x1152

qqvga

160x120

qvga

320x240

vga

640x480

svga

800x600

xga

1024x768

uxga

1600x1200

qxga

2048x1536

sxga

1280x1024

qsxga

2560x2048

hsxga

5120x4096

wvga

852x480

wxga

1366x768

wsxga

1600x1024

wuxga

1920x1200

woxga

2560x1600

wqsxga

3200x2048

wquxga

3840x2400

whsxga

6400x4096

whuxga

7680x4800

cga

320x200

ega

640x350

hd480

852x480

hd720

1280x720

hd1080

1920x1080

2k

2048x1080

2kflat

1998x1080

2kscope

2048x858

4k

4096x2160

4kflat

3996x2160

4kscope

4096x1716

nhd

640x360

hqvga

240x160

wqvga

400x240

fwqvga

432x240

hvga

480x320

qhd

960x540

2kdci

2048x1080

4kdci

4096x2160

uhd2160

3840x2160

uhd4320

7680x4320

2.5 Tốc độ video

Chỉ định tốc độ khung hình của video, được biểu thị bằng số khung hình được tạo mỗi giây. Nó phải là một chuỗi ở định dạng frame_rate_num/frame_rate_den, một số nguyên, một số float hoặc một chữ viết tắt tốc độ khung hình video hợp lệ.

Các chữ viết tắt sau đây được công nhận:

ntsc

30000/1001

pal

25/1

qntsc

30000/1001

qpal

25/1

sntsc

30000/1001

spal

25/1

film

24/1

ntsc-film

24000/1001

2.6 Tỷ lệ

Tỷ lệ có thể được biểu diễn dưới dạng biểu thức hoặc ở dạng tử số:mẫu số.

Lưu ý rằng tỷ lệ có giá trị vô hạn (1/0) hoặc âm được coi là hợp lệ, vì vậy bạn nên kiểm tra giá trị được trả về nếu muốn loại trừ các giá trị đó.

Giá trị không xác định có thể được biểu thị bằng chuỗi "0:0".

2.7 Màu sắc

Nó có thể là tên của một màu như được xác định bên dưới (khớp không phân biệt chữ hoa chữ thường) hoặc chuỗi [0x|#]RRGGBB[AA], có thể theo sau là @ và một chuỗi đại diện cho thành phần alpha.

Thành phần alpha có thể là một chuỗi được tạo bởi "0x" theo sau là số thập lục phân hoặc số thập phân trong khoảng từ 0,0 đến 1,0, đại diện cho giá trị độ mờ ('0x00' hoặc '0,0' có nghĩa là hoàn toàn trong suốt, '0xff' hoặc '1,0' hoàn toàn mờ đục). Nếu thành phần alpha không được chỉ định thì giả sử là '0xff'.

Chuỗi 'ngẫu nhiên' sẽ có màu ngẫu nhiên.

Tên màu sau đây được công nhận:

AliceBlue

0xF0F8FF

AntiqueWhite

0xFAEBD7

Aqua

0x00FFFF

Aquamarine

0x7FFFD4

Azure

0xF0FFFF

Beige

0xF5F5DC

Bisque

0xFFE4C4

Black

0x000000

BlanchedAlmond

0xFFEBCD

Blue

0x0000FF

BlueViolet

0x8A2BE2

Brown

0xA52A2A

BurlyWood

0xDEB887

CadetBlue

0x5F9EA0

Chartreuse

0x7FFF00

Chocolate

0xD2691E

Coral

0xFF7F50

CornflowerBlue

0x6495ED

Cornsilk

0xFFF8DC

Crimson

0xDC143C

Cyan

0x00FFFF

DarkBlue

0x00008B

DarkCyan

0x008B8B

DarkGoldenRod

0xB8860B

DarkGray

0xA9A9A9

DarkGreen

0x006400

DarkKhaki

0xBDB76B

DarkMagenta

0x8B008B

DarkOliveGreen

0x556B2F

Darkorange

0xFF8C00

DarkOrchid

0x9932CC

DarkRed

0x8B0000

DarkSalmon

0xE9967A

DarkSeaGreen

0x8FBC8F

DarkSlateBlue

0x483D8B

DarkSlateGray

0x2F4F4F

DarkTurquoise

0x00CED1

DarkViolet

0x9400D3

DeepPink

0xFF1493

DeepSkyBlue

0x00BFF

DimGray

0x696969

DodgerBlue

0x1E90FF

FireBrick

0xB22222

FloralWhite

0xFFFFAF0

ForestGreen

0x228B22

Fuchsia

0xFF00FF

Gainsboro

0xDCDCDC

GhostWhite

0xF8F8FF

Gold

0xFFD700

GoldenRod

0xDAA520

Gray

0x808080

Green

0x008000

GreenYellow

0xADFF2F

HoneyDew

0xF0FFF0

HotPink

0xFF69B4

IndianRed

0xCD5C5C

Indigo

0x4B0082

Ivory

0xFFFFFF0

Khaki

0xF0E68C

Lavender

0xE6E6FA

LavenderBlush

0xFFF0F5

LawnGreen

0x7CFC00

LemonChiffon

0xFFFACD

LightBlue

0xADD8E6

LightCoral

0xF08080

LightCyan

0xE0FFFF

LightGoldenRodYellow

0xFAFAD2

LightGreen

0x90EE90

LightGrey

0xD3D3D3

LightPink

0xFFB6C1

LightSalmon

0xFFA07A

LightSeaGreen

0x20B2AA

LightSkyBlue

0x87CEFA

LightSlateGray

0x778899

LightSteelBlue

0xB0C4DE

LightYellow

0xFFFFE0

Lime

0x00FF00

LimeGreen

0x32CD32

Linen

0xFAF0E6

Magenta

0xFF00FF

Maroon

0x800000

MediumAquaMarine

0x66CDAA

MediumBlue

0x0000CD

MediumOrchid

0xBA55D3

MediumPurple

0x9370D8

MediumSeaGreen

0x3CB371

MediumSlateBlue

0x7B68EE

MediumSpringGreen

0x00FA9A

MediumTurquoise

0x48D1CC

MediumVioletRed

0xC71585

MidnightBlue

0x191970

MintCream

0xF5FFFA

MistyRose

0xFFE4E1

Moccasin

0xFFE4B5

NavajoWhite

0xFFDEAD

Navy

0x000080

OldLace

0xFDF5E6

Olive

0x808000

OliveDrab

0x6B8E23

Orange

0xFFA500

OrangeRed

0xFF4500

Orchid

0xDA70D6

PaleGoldenRod

0xEEE8AA

PaleGreen

0x98FB98

PaleTurquoise

0xAFEEEE

PaleVioletRed

0xD87093

PapayaWhip

0xFFEFD5

PeachPuff

0xFFDAB9

Peru

0xCD853F

Pink

0xFFC0CB

Plum

0xDDA0DD

PowderBlue

0xB0E0E6

Purple

0x800080

Red

0xFF0000

RosyBrown

0xBC8F8F

RoyalBlue

0x4169E1

SaddleBrown

0x8B4513

Salmon

0xFA8072

SandyBrown

0xF4A460

SeaGreen

0x2E8B57

SeaShell

0xFFF5EE

Sienna

0xA0522D

Silver

0xC0C0C0

SkyBlue

0x87CEEB

SlateBlue

0x6A5ACD

SlateGray

0x708090

Snow

0xFFFAFA

SpringGreen

0x00FF7F

SteelBlue

0x4682B4

Tan

0xD2B48C

Teal

0x008080

Thistle

0xD8BFD8

Tomato

0xFF6347

Turquoise

0x40E0D0

Violet

0xEE82EE

Wheat

0xF5DEB3

White

0xFFFFFF

WhiteSmoke

0xF5F5F5

Yellow

0xFFFF00

YellowGreen

0x9ACD32

Bố cục kênh 2.8

Bố cục kênh chỉ định cách bố trí không gian của các kênh trong luồng âm thanh đa kênh. Để chỉ định bố cục kênh, FFmpeg sử dụng cú pháp đặc biệt.

Các kênh riêng lẻ được xác định bằng id, như được đưa ra trong bảng bên dưới:

FL

phía trước bên trái

FR

phía trước bên phải

FC

trung tâm phía trước

LFE

tần số thấp

BL

quay lại bên trái

BR

lưng bên phải

FLC

phía trước bên trái của trung tâm

FRC

phía trước bên phải trung tâm

BC

trung tâm phía sau

SL

bên trái

SR

bên phải

TC

Trung tâm hàng đầu

TFL

phía trên phía trước bên trái

TFC

trung tâm phía trước hàng đầu

TFR

phía trên bên phải

TBL

phía trên phía sau bên trái

TBC

trung tâm phía trên phía sau

TBR

phía trên phía sau bên phải

DL

trộn xuống trái

DR

downmix đúng

WL

rộng bên trái

WR

rộng bên phải

SDL

bao quanh trực tiếp bên trái

SDR

bao quanh trực tiếp bên phải

LFE2

tần số thấp 2

Thành phần bố cục kênh tiêu chuẩn có thể được chỉ định bằng cách sử dụng các mã định danh sau:

mono

FC

stereo

FL+FR

2.1

FL+FR+LFE

3.0

FL+FR+FC

3.0(back)

FL+FR+BC

4.0

FL+FR+FC+BC

quad

FL+FR+BL+BR

quad(side)

FL+FR+SL+SR

3.1

FL+FR+FC+LFE

5.0

FL+FR+FC+BL+BR

5.0(side)

FL+FR+FC+SL+SR

4.1

FL+FR+FC+LFE+BC

5.1

FL+FR+FC+LFE+BL+BR

5.1(side)

FL+FR+FC+LFE+SL+SR

6.0

FL+FR+FC+BC+SL+SR

6.0(front)

FL+FR+FLC+FRC+SL+SR

3.1.2

FL+FR+FC+LFE+TFL+TFR

hexagonal

FL+FR+FC+BL+BR+BC

6.1

FL+FR+FC+LFE+BC+SL+SR

6.1

FL+FR+FC+LFE+BL+BR+BC

6.1(front)

FL+FR+LFE+FLC+FRC+SL+SR

7.0

FL+FR+FC+BL+BR+SL+SR

7.0(front)

FL+FR+FC+FLC+FRC+SL+SR

7.1

FL+FR+FC+LFE+BL+BR+SL+SR

7.1(wide)

FL+FR+FC+LFE+BL+BR+FLC+FRC

7.1(wide-side)

FL+FR+FC+LFE+FLC+FRC+SL+SR

5.1.2

FL+FR+FC+LFE+BL+BR+TFL+TFR

octagonal

FL+FR+FC+BL+BR+BC+SL+SR

cube

FL+FR+BL+BR+TFL+TFR+TBL+TBR

5.1.4

FL+FR+FC+LFE+BL+BR+TFL+TFR+TBL+TBR

7.1.2

FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR

7.1.4

FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBL+TBR

7.2.3

FL+FR+FC+LFE+BL+BR+SL+SR+TFL+TFR+TBC+LFE2

9.1.4

FL+FR+FC+LFE+BL+BR+FLC+FRC+SL+SR+TFL+TFR+TBL+TBR

hexadecagonal

FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR

downmix

DL+DR

22.2

FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR

Bố cục kênh tùy chỉnh có thể được chỉ định dưới dạng một chuỗi các thuật ngữ, được phân tách bằng dấu '+'. Mỗi thuật ngữ có thể là:

  • tên của một kênh (ví dụ: 'FL', 'FR', 'FC', 'LFE', v.v.), mỗi kênh tùy chọn chứa một tên tùy chỉnh sau '@', (ví dụ: 'FL@Left', 'FR @Right', 'FC@Center', 'LFE@Low_Frequency', v.v.)

Bố cục kênh tiêu chuẩn có thể được chỉ định bằng cách sau:

  • tên của một kênh (ví dụ: 'FL', 'FR', 'FC', 'LFE', v.v.)
  • tên của bố cục kênh tiêu chuẩn (ví dụ: 'mono', 'stereo', '4.0', 'quad', '5.0', v.v.)
  • một số kênh, ở dạng thập phân, theo sau là 'c', tạo ra bố cục kênh mặc định cho số kênh đó (xem hàm av_channel_layout_default). Lưu ý rằng không phải tất cả số lượng kênh đều có bố cục mặc định.
  • một số kênh, ở dạng thập phân, theo sau là 'C', mang lại bố cục kênh không xác định với số lượng kênh được chỉ định. Lưu ý rằng không phải tất cả các chuỗi đặc tả bố cục kênh đều hỗ trợ bố cục kênh không xác định.
  • mặt nạ bố cục kênh, ở dạng thập lục phân bắt đầu bằng "0x" (xem macro AV_CH_* trong libavutil/channel_layout.h.

Trước libavutil phiên bản 53, ký tự cuối "c" để chỉ định một số kênh là tùy chọn, nhưng bây giờ nó là bắt buộc, trong khi mặt nạ bố cục kênh cũng có thể được chỉ định dưới dạng số thập phân (nếu và chỉ khi không có "c" hoặc theo sau "C").

Xem thêm hàm av_channel_layout_from_string được xác định trong libavutil/channel_layout.h.

3 Đánh giá biểu thức

Khi đánh giá một biểu thức số học, FFmpeg sử dụng trình đánh giá công thức nội bộ, được triển khai thông qua giao diện libavutil/eval.h.

Một biểu thức có thể chứa các toán tử đơn phân, nhị phân, hằng số và hàm.

Hai biểu thức expr1 và expr2 có thể được kết hợp để tạo thành một biểu thức khác "expr1;expr2". expr1 và expr2 lần lượt được đánh giá và biểu thức mới ước tính giá trị của expr2.

Có sẵn các toán tử nhị phân sau: +, -, *, /, ^.

Có sẵn các toán tử đơn nguyên sau: +, -.

Một số biến nội bộ có thể được sử dụng để lưu trữ và tải các kết quả trung gian. Chúng có thể được truy cập bằng cách sử dụng hàm ld và st với đối số chỉ mục thay đổi từ 0 đến 9 để chỉ định biến nội bộ nào cần truy cập.

Các chức năng sau đây có sẵn:

abs(x)

Tính giá trị tuyệt đối của x.

acos(x)

Tính arccosine của x.

asin(x)

Tính arcsin của x.

atan(x)

Tính arctang của x.

atan2(y, x)

Tính giá trị chính của tiếp tuyến của y/x.

between(x, min, max)

Trả về 1 nếu x lớn hơn hoặc bằng min và nhỏ hơn hoặc bằng max, nếu không thì trả về 0.

bitand(x, y)
bitor(x, y)

Tính toán theo từng bit và/hoặc phép toán trên x và y.

Kết quả đánh giá x và y được chuyển đổi thành số nguyên trước khi thực hiện thao tác theo bit.

Lưu ý rằng cả việc chuyển đổi sang số nguyên và chuyển đổi trở lại dấu phẩy động đều có thể mất độ chính xác. Hãy cẩn thận với những kết quả không mong đợi đối với số lượng lớn (thường là 2^53 và lớn hơn).

ceil(expr)

Làm tròn giá trị của biểu thức expr lên trên số nguyên gần nhất. Ví dụ: "trần (1.5)" là "2.0".

clip(x, min, max)

Trả về giá trị của x được cắt bớt giữa mức tối thiểu và tối đa.

cos(x)

Tính cosin của x.

cosh(x)

Tính cosin hyperbol của x.

eq(x, y)

Trả về 1 nếu x và y tương đương, 0 nếu không.

exp(x)

Tính hàm mũ của x (với cơ số e là số Euler).

floor(expr)

Làm tròn giá trị của biểu thức expr xuống số nguyên gần nhất. Ví dụ: "sàn(-1,5)" là "-2,0".

gauss(x)

Tính hàm Gauss của x, tương ứng với exp(-x*x/2)/sqrt(2*PI).

gcd(x, y)

Trả về ước chung lớn nhất của x và y. Nếu cả x và y đều bằng 0 hoặc một trong hai hoặc cả hai đều nhỏ hơn 0 thì hành vi không được xác định.

gt(x, y)

Trả về 1 nếu x lớn hơn y, 0 nếu không.

gte(x, y)

Trả về 1 nếu x lớn hơn hoặc bằng y, nếu không thì trả về 0.

hypot(x, y)

Hàm này tương tự như hàm C cùng tên; nó trả về "sqrt(x*x + y*y)", độ dài cạnh huyền của một tam giác vuông có cạnh dài x và y hoặc khoảng cách của điểm (x, y) tính từ gốc tọa độ.

if(x, y)

Đánh giá x, và nếu kết quả khác 0 thì trả về kết quả đánh giá của y, nếu không thì trả về 0.

if(x, y, z)

Đánh giá x, và nếu kết quả khác 0 thì trả về kết quả đánh giá của y, nếu không thì trả về kết quả đánh giá của z.

ifnot(x, y)

Đánh giá x, và nếu kết quả bằng 0 thì trả về kết quả đánh giá của y, nếu không thì trả về 0.

ifnot(x, y, z)

Đánh giá x, và nếu kết quả bằng 0 thì trả về kết quả đánh giá của y, nếu không thì trả về kết quả đánh giá của z.

isinf(x)

Trả về 1,0 nếu x là +/-INFINITY, 0,0 nếu không.

isnan(x)

Trả về 1,0 nếu x là NAN, 0,0 nếu không.

ld(idx)

Tải giá trị của biến nội bộ với chỉ mục idx, trước đó được lưu trữ bằng st(idx, expr). Hàm trả về giá trị được nạp.

lerp(x, y, z)

Trả về nội suy tuyến tính giữa x và y theo lượng z.

log(x)

Tính logarit tự nhiên của x.

lt(x, y)

Trả về 1 nếu x nhỏ hơn y, 0 nếu không.

lte(x, y)

Trả về 1 nếu x nhỏ hơn hoặc bằng y, nếu không thì trả về 0.

max(x, y)

Trả về mức tối đa giữa x và y.

min(x, y)

Trả về giá trị tối thiểu giữa x và y.

mod(x, y)

Tính số dư của phép chia x cho y.

not(expr)

Trả về 1,0 nếu expr bằng 0, 0,0 nếu không.

pow(x, y)

Tính lũy thừa của x nâng y lên, nó tương đương với "(x)^(y)".

print(t)
print(t, l)

In giá trị của biểu thức t bằng loglevel l. Nếu l không được chỉ định thì mức nhật ký mặc định sẽ được sử dụng. Trả về giá trị của biểu thức được in.

random(idx)

Trả về giá trị giả ngẫu nhiên trong khoảng từ 0,0 đến 1,0. idx là chỉ mục của biến nội bộ được sử dụng để lưu hạt giống/trạng thái, trước đó có thể được lưu trữ bằng st(idx).

Để khởi tạo hạt giống, bạn cần lưu trữ giá trị hạt giống dưới dạng số nguyên không dấu 64 bit trong biến nội bộ có chỉ mục idx.

Ví dụ: để lưu trữ hạt giống có giá trị 42 trong biến nội bộ có chỉ số 0 và in một vài giá trị ngẫu nhiên:st(0,42); print(random(0)); print(random(0)); print(random(0))

randomi(idx, min, max)

Trả về giá trị giả ngẫu nhiên trong khoảng giữa tối thiểu và tối đa. idx là chỉ mục của biến nội bộ sẽ được sử dụng để lưu hạt giống/trạng thái, có thể được lưu trữ trước đó bằng st(idx).

Để khởi tạo hạt giống, bạn cần lưu trữ giá trị hạt giống dưới dạng số nguyên không dấu 64 bit trong biến nội bộ có chỉ mục idx.

root(expr, max)

Tìm một giá trị đầu vào mà hàm được biểu thị bằng expr với đối số ld(0) là 0 trong khoảng 0..max.

Biểu thức trong expr phải biểu thị một hàm liên tục nếu không kết quả sẽ không được xác định.

ld(0) được sử dụng để biểu thị giá trị đầu vào của hàm, có nghĩa là biểu thức đã cho sẽ được đánh giá nhiều lần với các giá trị đầu vào khác nhau mà biểu thức có thể truy cập thông qua ld(0). Khi biểu thức ước tính là 0 thì giá trị đầu vào tương ứng sẽ được trả về.

round(expr)

Làm tròn giá trị của biểu thức expr tới số nguyên gần nhất. Ví dụ: "round(1.5)" là "2.0".

sgn(x)

Tính dấu của x.

sin(x)

Tính sin của x.

sinh(x)

Tính sin hyperbol của x.

sqrt(expr)

Tính căn bậc hai của expr. Điều này tương đương với "(expr)^.5".

squish(x)

Tính biểu thức 1/(1 + exp(4*x)).

st(idx, expr)

Lưu giá trị của biểu thức expr vào một biến nội bộ. idx chỉ định chỉ mục của biến nơi lưu trữ giá trị và đó là giá trị nằm trong khoảng từ 0 đến 9. Hàm trả về giá trị được lưu trong biến nội bộ.

Giá trị được lưu trữ có thể được lấy bằng ld(var).

Lưu ý: các biến hiện không được chia sẻ giữa các biểu thức.

tan(x)

Tính tang của x.

tanh(x)

Tính tang hyperbol của x.

taylor(expr, x)
taylor(expr, x, idx)

Tính giá trị chuỗi Taylor tại x, cho biểu thức biểu thị đạo hàm thứ ld(idx)-th của hàm số tại 0.

Khi chuỗi không hội tụ thì kết quả là không xác định.

ld(idx) được sử dụng để biểu thị thứ tự đạo hàm trong expr, có nghĩa là biểu thức đã cho sẽ được đánh giá nhiều lần với các giá trị đầu vào khác nhau mà biểu thức có thể truy cập thông qua ld(idx). Nếu idx không được chỉ định thì giả sử là 0.

Lưu ý, khi bạn có đạo hàm tại y thay vì 0, có thể sử dụng taylor(expr, x-y).

time(0)

Trả về thời gian (đồng hồ treo tường) hiện tại tính bằng giây.

trunc(expr)

Làm tròn giá trị của biểu thức expr về 0 đến số nguyên gần nhất. Ví dụ: "trunc(-1.5)" là "-1.0".

while(cond, expr)

Đánh giá biểu thức expr trong khi biểu thức cond khác 0 và trả về giá trị của đánh giá expr cuối cùng hoặc NAN nếu cond luôn sai.

Các hằng số sau đây có sẵn:

PI

diện tích của đĩa đơn vị, khoảng 3,14

E

exp(1) (số Euler), xấp xỉ 2,718

PHI

tỷ lệ vàng (1+sqrt(5))/2, xấp xỉ 1,618

Giả sử rằng một biểu thức được coi là "đúng" nếu nó có giá trị khác 0, hãy lưu ý rằng:

* hoạt động như AND

+ hoạt động như HOẶC

Ví dụ: cấu trúc:

if (A AND B) then C

tương đương với:

if(A*B, C)

Trong mã C, bạn có thể mở rộng danh sách các hàm đơn phân và nhị phân, đồng thời xác định các hằng số được nhận dạng để chúng có sẵn cho các biểu thức của bạn.

Người đánh giá cũng nhận ra tiền tố đơn vị Hệ thống Quốc tế. Nếu 'i' được thêm vào sau tiền tố thì tiền tố nhị phân sẽ được sử dụng, dựa trên lũy thừa 1024 thay vì lũy thừa 1000. Hậu tố 'B' nhân giá trị với 8 và có thể được thêm vào sau tiền tố đơn vị hoặc được sử dụng một mình . Điều này cho phép sử dụng ví dụ 'KB', 'MiB', 'G' và 'B' làm hậu tố số.

Sau đây là danh sách các tiền tố Hệ thống Quốc tế có sẵn, với biểu thị lũy thừa tương ứng là 10 và 2.

y

10^-24 / 2^-80

z

10^-21 / 2^-70

a

10^-18 / 2^-60

f

10^-15 / 2^-50

p

10^-12 / 2^-40

n

10^-9 / 2^-30

u

10^-6 / 2^-20

m

10^-3 / 2^-10

c

10^-2

d

10^-1

h

10^2

k

10^3 / 2^10

K

10^3 / 2^10

M

10^6 / 2^20

G

10^9 / 2^30

T

10^12 / 2^40

P

10^15 / 2^50

E

10^18 / 2^60

Z

10^21 / 2^70

Y

10^24 / 2^80

Danh sách bình luận
Đang tải..