 Symbolic Calculus for High-Performance Computing: From Scratch Using C++23Substitution Construction Conclusion Typing equations What we would like to type 1 symbol a; 2 symbol w; 3 symbol t; 4 symbol phi; 5 6 formula f = a ∗ sin(w ∗ t + phi ); 7 8 double y = f(a = 5.0, w = 2 from the syntax 1 symbol a; 2 symbol w; 3 symbol t; 4 symbol phi; The idea a, ω, t, ϕ should all have a unique type The problem How to produce a different type everytime a new symbol is created? The as default template parameter 1 template Symbolic Calculus for High-Performance Computing: From Scratch Using C++23Substitution Construction Conclusion Typing equations What we would like to type 1 symbol a; 2 symbol w; 3 symbol t; 4 symbol phi; 5 6 formula f = a ∗ sin(w ∗ t + phi ); 7 8 double y = f(a = 5.0, w = 2 from the syntax 1 symbol a; 2 symbol w; 3 symbol t; 4 symbol phi; The idea a, ω, t, ϕ should all have a unique type The problem How to produce a different type everytime a new symbol is created? The as default template parameter 1 template- 2 struct symbol {}; The result 1 symbol x; 2 symbol y; 3 4 std :: cout << std :: is_same_v - << std :: endl; 0 码力 | 70 页 | 1.80 MB | 6 月前3
 Julia 1.11.0-rc4 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1985 页 | 6.67 MB | 10 月前3 Julia 1.11.0-rc4 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1985 页 | 6.67 MB | 10 月前3
 Julia 1.11.0 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1987 页 | 6.67 MB | 10 月前3 Julia 1.11.0 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1987 页 | 6.67 MB | 10 月前3
 Julia 1.11.2 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 2007 页 | 6.73 MB | 10 月前3 Julia 1.11.2 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 2007 页 | 6.73 MB | 10 月前3
 Julia 1.11.1 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1989 页 | 6.68 MB | 10 月前3 Julia 1.11.1 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1989 页 | 6.68 MB | 10 月前3
 julia 1.11.3 documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 2007 页 | 6.73 MB | 8 月前3 julia 1.11.3 documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 2007 页 | 6.73 MB | 8 月前3
 Julia 1.10.7 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you redefine built-in constants and functions if needed (although this is operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1691 页 | 6.34 MB | 10 月前3 Julia 1.10.7 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you redefine built-in constants and functions if needed (although this is operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1691 页 | 6.34 MB | 10 月前3
 Julia 1.10.6 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you redefine built-in constants and functions if needed (although this is operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1691 页 | 6.33 MB | 10 月前3 Julia 1.10.6 Documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you redefine built-in constants and functions if needed (although this is operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1691 页 | 6.33 MB | 10 月前3
 julia 1.10.8 documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you redefine built-in constants and functions if needed (although this is operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1692 页 | 6.34 MB | 8 月前3 julia 1.10.8 documentationbackslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you redefine built-in constants and functions if needed (although this is operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 1692 页 | 6.34 MB | 8 月前3
 Julia 1.11.4backslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 2007 页 | 6.73 MB | 3 月前3 Julia 1.11.4backslashed LaTeX symbol name followed by tab. For example, the variable name δ can be entered by typing \delta-tab, or even α̂⁽²⁾ by \alpha-tab-\hat- tab-\^(2)-tab. (If you find a symbol somewhere, e.g code, that you don't know how to type, the REPL help will tell you: just type ? and then paste the symbol.) Julia will even let you shadow existing exported constants and functions with local ones (although operator_precedence(:+=), Base.operator_precedence(:(=)) # (Note the necessary parens on `:(=)`) �→ (0, 1, 1) A symbol representing the operator associativity can also be found by calling the built-in function Base.0 码力 | 2007 页 | 6.73 MB | 3 月前3
共 122 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13














