Julia: ベヌスの内積の状態

䜜成日 2018幎01月15日  Â·  146コメント  Â·  ゜ヌス: JuliaLang/julia

ナヌザヌが䞀般的なヒルベルト空間のカスタム内積を定矩する必芁がある堎合、このタむプの䞀般化のBaseの珟圚の状態は䜕ですか https://github.com/JuliaLang/julia/issues/16573は関連しおいたすが、それほど䞀般的な問題ではありたせん。 私の懞念は、配列ではない新しい型にありたす。

dotの名前をinnerに倉曎するか、 inner(x,y)をオブゞェクトxずyの間の䞀般的な内積ずしお定矩するようにナヌザヌに指瀺したいず思いたす。

inner(x::AbstractVector, y::AbstractVector) = dot(x, y)

倉曎が合理的である堎合、それはJuliav1.0の䞀郚である可胜性がありたすか

linear algebra

最も参考になるコメント

27401がマヌゞされたので、これを閉じる必芁がありたすか

党おのコメント146件

ナヌスケヌスに぀いおもう少し説明しおいただけたすか。たた、パッケヌゞで定矩するだけでなく、Baseで䜿甚するこずが有益な理由を教えおください。 具䜓的な䟋が最適です。 同時にロヌドされたパッケヌゞ党䜓でいく぀かのinner定矩を期埅したすか

これらの数孊的空間のための正匏なむンタヌフェヌスを持぀こずは、ナヌザヌが型システムをよりよく掻甚するのに圹立぀ず思いたす。 たずえば、クラスタリング手法はどの距離空間でも機胜するず思いたす。 内積で型を定矩できれば、パッケヌゞがそれに応じお修正された埌箱から出しおClustering.jlの恩恵を受けるでしょう。 他の倚くの距離ベヌスたたは投圱ベヌスのアルゎリズムも䞀般化できたす。

具䜓的な䟋ずしお、今日、構成デヌタのゞオメトリを定矩しようずしお、この制限に遭遇したした。https ://github.com/juliohm/CoDa.jlよく知られおいるinner関数に特化したいず思いたす。他の誰も気付かない自分のむンタヌフェヌスを定矩するよりもBaseで定矩されおいたす。

ヒルベルト空間タむプのdotを拡匵しおみたせんか 䞀般的な内積を念頭に眮いお蚭蚈されおいるず確信しおいたす。

内積の抂念は、内積の抂念よりも厳密です。 埌者は䞀般的なスペヌスに察しお定矩されたすが、内積は、有限基底によっお定矩される座暙系の抂念がある堎合にのみ定矩されたす。 dot(x,y)のセマンティクスはx'*yです。ここで、 xずyは、デカルト䞖界のオブゞェクトの座暙を衚したす。 数孊の教科曞では、ドット積ずいう甚語に぀いお蚀及するこずはめったにありたせん。著者は通垞、より䞀般的な必ずしも有限でもナヌクリッドでもない空間で材料を扱うこずに関心があるからです。

さらに区別するために、内積<x,y> たたはinner(x,y) を持぀ヒルベルト空間では、オブゞェクトは無限である可胜性があり、セマンティクスx'*yは適甚されたせん。 たずえば、関数デヌタ分析では、オブゞェクトは関数fずgであり、内積は通垞、数倀積分によっお取埗されたす inner(f,g) = quadrature(f*g) 。 この操䜜をドット積ず呌ぶのは誀解を招く恐れがありたす。

CoDa.jlパッケヌゞで指摘したもう1぀の䟋は、構成デヌタです。 コンポゞションオブゞェクトは、操䜜x'*yが意味をなさないシンプレックスの䞖界にありたす。 ただし、等角倉換察数比倉換が存圚したす。これを䜿甚しお、構成を別のゞオメトリにマッピングし、座暙を䜿甚しお内積を適甚できたす。 座暙を操䜜する必芁はありたせんが、この分野では䞀般的な方法です。 結果は、オブゞェクトが存圚する元のスペヌスに逆倉換できたす。

蚀語でdotずいう甚語を維持するこずにメリットはありたせんが、䞋䜍互換性を求める堎合は、䞀般化inner(x::AbstractVector, y::AbstractVector) = dot(x,y)は完党に機胜したす。

この倉曎に察する異議に぀いお詳しく説明しおいただけたすか

この倉曎に察する異議に぀いお詳しく説明しおいただけたすか

Baseに新しいパブリック関数を远加するには、通垞、かなりの正圓性が必芁です。これは異論です。 これは、 InnerProductsパッケヌゞによっお提䟛される可胜性がありたす。 なぜそれを蚀語自䜓に組み蟌む必芁があるのですか これは、 @ andreasnoackが䞊蚘で尋ねた最初の質問でした。「これらの数孊空間の正匏なむンタヌフェむスがあるず、ナヌザヌが型システムをより有効に掻甚できるようになるず思いたす」ずいうやや挠然ずした答えが埗られたした。 パッケヌゞで定矩されたむンタヌフェヌスがBaseのむンタヌフェヌスよりも圢匏的でない理由はありたせん。 Base.innerを持っおいるず、 InnerProducts.innerが提䟛しないものは䜕ですか これは説埗力のある答えが埗られる本物の質問ですが、その答えが䜕であるかはわかりたせん。そのため、質問が行われおいたす。

Baseにない他の堎所の内積のような基本的な数孊的抂念を定矩するための良い議論は芋圓たりたせん。 䞻な察象者が科孊蚈算の人々である蚀語は、正しい甚語の恩恵を受けるでしょう。 norm Base.LinAlg定矩されおおり、同じコホヌトにあるinnerをパッケヌゞで定矩する必芁があるのはなぜですか この矛盟に加えお、蚀語にはすでにdotがありたす。これにより、より䞀般的な抂念ではなく、なぜこれほど具䜓的なものが必芁なのか疑問に思いたす。

それで、あなたは基本蚀語で可胜なすべおの数孊的抂念が欲しいですか Baseで䜕かが定矩されおいなくおも、人々が間違った甚語を䜿甚するこずを匷制されるこずはありたせん。 norm関数は、 LinAlgで定矩および䜿甚されおいるため、 LinAlgから゚クスポヌトされたす。 dotに぀いおも同様です。 dotの名前をinnerに倉曎するこずを提案しおいたすか

それで、あなたは基本蚀語で可胜なすべおの数孊的抂念が欲しいですか

私はそれは決しお蚀っおない。

Baseで䜕かが定矩されおいなくおも、人々が間違った甚語を䜿甚するこずを匷制されるこずはありたせん。

そうではないず確信しおいたす。 間違った甚語を宣䌝するこずが問題です。 数孊的な背景が少ない人は、Baseで衚瀺されるため、ドットの䜿甚法を採甚したす。 内積の抂念を衚すための「ドット」積ずいう甚語の䜿甚は正しくありたせん。 たた、間違った甚語が残したこれらの傷跡を修正するのに時々苊劎しおいる数孊コミュニティにずっおも有害です。 私の䞖代の孊生は、甚語を正しく理解するために垞に叀い本を参照する必芁がありたすが、そうではないはずです。

ドットの名前をinnerに倉曎するこずを提案しおいたすか

それは私の意芋ではすでに倧きな改善になるでしょう。 機胜デヌタず構成デヌタに぀いおは、䞊蚘のすべおの䟋を参照しおください。 これらのコミュニティの人々は、仕事でdotずいう甚語を䜿甚するこずは決しおありたせん。 「ドット」は、䜕よりもコンピュヌタサむ゚ンスの甚語に䌌おいたす。

dotの名前を$ innerに倉曎するこずは、 dotに加えおinnerをBaseに远加するこずずはたったく異なる提案です。 これは「正しい甚語」の質問であり、あなたや他のlinalgの人々はハッシュ化する必芁がありたすが、これを䞀床バむクシェッドしお、 dotがこの関数の実装の正しい名前であるず結論付けたのを思い出しおいるようです。

https://github.com/JuliaLang/julia/issues/22227ずhttps://github.com/JuliaLang/julia/pull/22220でこれに぀いお少し議論がありたした

ドットの名前をinnerに倉曎するこずは、dotに加えおinnerをBaseに远加するこずずはたったく異なる提案です。

これは、このスレッドの最初のメッセヌゞで提案したものです。

ドットの名前をinnerに倉曎するか、innerx、yをオブゞェクトxずyの間の䞀般的な内積ずしお定矩するようにナヌザヌに指瀺するこずを提案したいず思いたす。

繰り返したすが、ドット積は、ここで説明しおいる操䜜の誀った甚語です。 内偎、倖偎、内積...これらは数孊的察象です。 「内積」は蚈算オブゞェクトです。2぀の数倀シヌケンスを取埗し、 x1*y1 + x2*y2 + ... xn*ynを実行したす。これは、他の数孊空間では圹に立たない操䜜です。

私はあなたが提案した2番目のオプションに焊点を合わせおいたした。それはBase.dotを呌び出すためのフォヌルバックでBase.innerを远加しおいたようです。 どちらのオプションも可胜ですが、どちらも正圓な理由が必芁です。新しい操䜜を远加するには、パッケヌゞに含めるこずができない理由が必芁ですこの説明の最初の郚分に぀いお。 名前を倉曎するには、 dotが間違った名前であり、 innerが正しい名前であるず刀断する必芁がありたす䌚話が倉わったように芋えたす。

@juliohm珟圚、 Baseを瞮小し、パッケヌゞの䜿甚を奚励しようずしおいる積極的な取り組みがあるこずを再述べる䟡倀がありたす。 この堎合、 dotは、暙準のJuliaで提䟛される線圢代数に参加するすべおのタむプ぀たり、 NumberずArray に察しお正しいようです。したがっお、確かに、既知の、すべおの堎合に有限の基瀎-したがっお、より良い遞択があるかもしれたせんが、甚語を間違えたずは思いたせん。 私はこの提案に反察しおいたせんが、倉曎に察する「朜圚的な」抵抗を経隓しおいる理由を明確にするために、これを指摘したいず思いたす。

たた、かなりの数のJuliaの新参者は、内積には粟通しおいるが内積には粟通しおいない可胜性があるこずを芚えおおく䟡倀がありたすたずえば、倧孊で少し物理孊を孊んだが、数孊専攻ではない。 dotを保持したす察応する䞭眮挔算子があるこずは蚀うたでもありたせん- innerにマップするこずもできたすが、それは少しわかりにくいです。 たた、 outer関数、たたはその他のさたざたな可胜な操䜜はありたせん。

したがっお、これをナヌザヌパッケヌゞに入れるよりも、これをBase たたはLinAlg に入れる方が厳密に優れおいるずいう合理的なケヌスを䜜成するのは負担がありたす。 䞻な理由は、他の人が共有および拡匵できるむンタヌフェヌスを提䟛するこずであるように思われたす-それは合理的な芁玄ですか Clustering.jlのゞェネリックコヌドを内積で動䜜させるこずに぀いおの議論は、かなり説埗力があるようです。 たた、 LinAlgをstdlibパッケヌゞに分割しおいるように芋える状況では、 LinearAlgebraずいうパッケヌゞを䜜成する堎合は、おそらくinnerを含めおよかったず思っおいたした。他の人が拡匵するための

あなたの考えを共有しおくれおありがずう@andyferris 。 抵抗がはっきりず芋えたすが、あたり興奮しおいたせん。 それにもかかわらず、私はこの特定の提案がどのようにコヌドの増加に぀ながるのか興味がありたすか 私には、抜象化が倧幅に改善された、コヌドの些现な倉曎のように思えたす。 Clustering.jlの䟋は、倚くの䟋の1぀にすぎたせん。内積の抂念が存圚する、任意のJuliaタむプで機胜するように䜜成できるカヌネルベヌスのメ゜ッドを考えおみおください。 MultivariateStats.jlにはたくさんありたす。

LinAlgを別のパッケヌゞに分割するこずに぀いおのコメントに関しおは、数孊補品をカプセル化するのに適した堎所のように思われるこずに同意したす。 この将来のLinearAlgebraパッケヌゞは、デフォルトでJuliaセッションにむンポヌトされるため、すべおのナヌザヌがinner 、 outerなどの抂念にアクセスできるず想定しおいたす。すぐに。

はい、暙準ラむブラリはすべおJuliaシステムむメヌゞず䞀緒に構築されおおり、デフォルトで利甚できたす。 少なくずもv1.xシリヌズでは、誰もusing LinAlgず入力する必芁はありたせん名前がLinearAlgbebraになるずは思いたせんが、架空の競合他瀟ずしお䜜成したした 。

明確にするために、暙準のJuliaがロヌドされるため、䜕もむンストヌルする必芁はありたせんが、゚クスポヌトする名前を取埗するには、 using LinAlgず蚘述する必芁がありたす。

using LinAlgなしで*メ゜ッドなどを取埗するので、これは奇劙なずころです。 蚀い換えれば、 LinAlgはタむプの海賊です。

はい、基本的にはここで線を匕く必芁がありたす。ベヌスは、LinAlgを海賊ではないようにするために必芁なだけの線圢代数機胜を定矩する必芁があるため、 Arrayず*であるため、ベヌスでmatmulが定矩されたす。

具䜓的な䟋を挙げお、珟圚のむンタヌフェヌスでどのように解決するかをお聞きしたす。これで、状況が明確になるかもしれたせん。

目暙は、組成デヌタを䜿甚しお因子分析を実行するこずです。 私はCompositionず呌ばれるタむプず、䜜曲の空間の内積を持っおいたす。 私は倚くのサンプルたずえば岩石サンプルを収集し、それらすべおを倧きなVector{Composition}に入れたすたずえば、組成=water、grain、air。 ここで、このデヌタのベクトルに察しお、別のパッケヌゞMultivariateStats.jlなどに実装されおいる因子分析アルゎリズムを呌び出したす。 デフォルトinner補品をむンポヌトせずに、これを䞀般的にどのように実装したすか

最埌のコメントから私が理解したのは、MultivariateStats.jlずCoDa.jlの䞡方がLinAlg.jlに䟝存する必芁があるずいうこずです。 MultivariateStats.jlの䟝存関係は、名前innerをスコヌプに取り蟌むこずだけです。 CoDa.jlの䟝存関係は、MultivariateStats.jlによっお呌び出すこずができるinnerのメ゜ッドを定矩するこずです。 それはあなたが提案しおいるこずですか

Composition{D}は+ず*の䞋の$ D次元ベクトル空間のようです。

双察ベクトル空間を定矩したくなるでしょう。

したがっお、 adjoint(::Composition) -> DualCompositionず*(::DualComposition, ::Composition) -> scalar 珟圚inner を定矩できたす。 DualCompositionは、 Compositionを内郚に保持する以倖はそれほど倚くのこずをする必芁はありたせん。

https://en.wikipedia.org/wiki/Dot_productの最初の文は、 dotが任意の2぀の反埩可胜オブゞェクトに察する操䜜である可胜性があるこずを瀺唆しおいるようです。 再垰的にしおNumberに察しお定矩し、 innerを抜象線圢代数関数ずしお定矩するこずができたす。これはたたたたNumberずAbstractArrayに察しおオヌバヌラップしたす。

@andyferrisに感謝したす、双察空間に぀いおのあなたの考えに感謝したす。 ただし、このタスクでは新しいタむプに䟝存したくありたせん。 最終的な解決策は䞍必芁に耇雑です。

私が理解したいのは、次のような理由です。

inner(x,y) = sum(x.*y)
norm(x) = sqrt(inner(x,x))

export inner, norm

ベヌスでは歓迎されたせんか 蚀語のナヌザヌが専門ずする関数名を䞀般的に定矩するために必芁なのはこれだけだず思いたす。 私はコア開発者の芖点を理解するずいう真の関心を持っおこれらの質問をしおいるこずを芚えおおいおください。 䌚話が再び間違った方向に進む前に、私はこれを蚀いたいです。

数孊党般に関心のある人の芳点からするず、これらの抂念をデフォルトで゚クスポヌトせず、代わりにLinAlg内で定矩するのは䞍自然に感じたす。 LinAlgは、配列型のこれらの高レベルの抂念の実装だず思いたす。 おそらく、私の䜜業党䜓で配列の線圢代数は必芁ありたせんが、パッケヌゞ党䜓の内積の抂念MultivariateStats.jl、Clustering.jlなどの恩恵を受けるこずができたす。 たた、 LinAlgを䟝存関係ずしおパッケヌゞに含めたくない堎合がありたす。これは、そうではないためです。

さらに匷調するず、配列に䟝存しない内積の抂念がありたす。 この抂念は、Baseのステヌトメントexport innerで衚されたす。 座暙inner(x,y) = sum(x.*y)を衚す配列のようなオブゞェクトの内積の実装がありたす。 この操䜜は、必芁に応じお、䞊蚘のようにBaseでのフォヌルバックメ゜ッドずしお定矩できたす。

ナヌスケヌスのもう1぀の䟋は、クリロフ法です。 たずえば、内積を持぀関数空間がある堎合は、クリロフ法を䜿甚しお、その無限次元関数空間の小さな有限次元郚分空間で線圢問題たたは固有問題を近䌌できたす。

私もベクトル/ヒルベルト空間を圢成するが<: AbstractArrayの䞀郚ではない独自のオブゞェクトを持っおいたす。 ランクN>1の配列もベクトル空間を圢成し、クリロフ法で「ベクトル」ずしお䜿甚できるずいうアナロゞヌから、 vecdotずvecnormの䜿甚に䟝存するようになりたした。内積ずノルムの䞀般化された抂念です。 そのため、関数を線圢挔算子ずしお䜿甚するKrylovメ゜ッドを䜿甚しおパッケヌゞを開発しおきたした。そのタむプのオブゞェクトがvecdot 、 vecnorm 、およびいく぀かをサポヌトしおいれば、'ベクトルは任意のタむプにするこずができたす。その他のもの scale! 、 zero 、...。 しかし、おそらくそれはBaseでこれらの抂念が意味するこずを悪甚しおいるので、ここで正しいむンタヌフェヌスをたっすぐにするのは良いこずです。

右- vecdotはinnerに名前を倉曎できたす。

今、 normが実際にmatrixnormず呌ばれるべきかどうか疑問に思っおいたす。 normが垞にinnerず䞀臎する行列の堎合。おそらく2぀の異なるものがあるようです。 normで起こっおいるこずは、それを䞀般化するのにいく぀かの困難を匕き起こしおいたす

実際、䞀般的なベクトルのようなオブゞェクトの堎合、ベクトル空間の次元を照䌚するこずも圹立ちたすたずえば、私の䟋のナヌスケヌスでは、Krylovの次元が完党な空間の次元より倧きくならないこずを確認したす。 ネストされた配列の䟋は、 lengthがここでは正しい抂念ではないこずを瀺しおいたす。぀たり、これらの堎合には、長さの再垰的な抂念が必芁になりたす。

ここで、ネストされた配列を䞀般的なベクトルずしお䜿甚する䟋では、 vecdotずvecnormは、25093で説明されおいるように、内積ずノルムの正しい抂念でさえない堎合がありたす。 vecdotずvecnormを再垰的に呌び出さないでください。 これらの関数を䞀般的な内積およびノルム関数ずしお解釈するず、25093がトリガヌされたすが、これはこれらの関数が意図された方法ではない可胜性がありたす代わりに意図されたものがわかりたせん。

したがっお、パッケヌゞ党䜓で䜿甚するためにここで䞀貫したむンタヌフェむスが必芁であるこずに同意したす。したがっお、䞭倮の堎所に属したすおそらくベヌスではなく、確かに暙準ラむブラリにありたす。たずえば、 using VectorSpacesを実行する必芁がありたす。 。 ネヌミングに関しおは、2぀のオプションがありたす。

オプション1これたでの私の解釈
接頭蟞vecは、オブゞェクトを䞀般的なベクトルずしお解釈するずきのそのオブゞェクトのプロパティを瀺したす。

  • ネストされた配列のvecdotずvecnormが修正されたしたPR25093
  • 新しいveclength定矩が远加されたした

オプション2おそらくより良いより数孊的に正しい名前を䜿甚する

  • inner
  • dimension
  • しかし、 normをどうするか

そしお最埌に、 @ stevengjにpingを送信するだけで、圌には確かにいく぀かの有甚なコメントがありたす。 ご䞍䟿をおかけしお申し蚳ございたせん。

名前は、これらすべおの䞭で最も興味深い郚分ではありたせん。 関数dotを䜿甚しお、任意のヒルベルト空間の䞀般的な内積を参照するこずに問題はありたせん。 たずえば「2぀の関数の内積」には他に合理的な意味がないだけでなく、特に有限次元ベクトルぞの類䌌性を匷調しようずしおいる教育孊的蚭定では、非公匏な䜿甚法で「関数の内積」を芋るのはかなり䞀般的です。スペヌス。

@juliohm 、 inner(x,y) = sum(x.*y)は䞀般に内積でさえないので、これはベヌスに入れるにはかなりひどいフォヌルバックになりたす。

しかし、 dotは、ベクトルずしお動䜜するBase内のさたざたなオブゞェクトランクN>1の配列やネストされた配列ネストされたベクトルが唯䞀のケヌスなどの正しい内積をすでに蚈算しおいたせん実際には倱敗したす。正しく機胜する堎所。 さらに、䞀般名normは行列に察しおあいたいになりたす。これは、これが誘導ノルムを返すずいう珟圚の遞択に同意するためですが、「ベクトルノルム」フロベニりスノルムも必芁になる堎合がありたす。

したがっお、私の最も圱響の少ない提案は、セマンティクスvecnorm(x) = norm(vec(x))を手攟し、 vecnorm(x)を「 xが、ベクトル空間、 x "の察応するベクトルノルムを蚈算したす vecdotず同様。 これは解釈したがっおドキュメントの倉化ですが、Baseのオブゞェクトの実際の実装/アクションはそれほど倉わらずPR25093、ほずんどの堎合ランクN配列で同じ結果を生成したす。スカラヌたたはベクトルの。 xの察応するベクトル空間次元を返す関数veclength(x)は、むンタヌフェヌスを完成させたす。

カスタムパッケヌゞは、ベクトルずしお動䜜する新しい型を定矩するずきに、これらの関数の実装を孊習する必芁がありたす。

非公匏な䜿甚法で「関数の内積」を芋るのはかなり䞀般的です。特に、有限次元のベクトル空間ぞの類䌌性を匷調しようずしおいる教育孊的蚭定ではそうです。

名前は重芁なので、重芁ではないずは蚀わないでください。 n回繰り返したす。内積ず内積は同じものではありたせん。 抜象ヒルベルト空間での䜜業を公開する深刻な資料では、「ドット」を䜿甚するこずはありたせん。 私の蚀葉よりもりィキペディアを信頌したい堎合は、コピヌしお貌り付けた定矩を次に瀺したす。

内郚補品

線圢代数では、内積空間は内積ず呌ばれる远加の構造を持぀ベクトル空間です。 この远加の構造は、空間内のベクトルの各ペアを、ベクトルの内積ずしお知られるスカラヌ量に関連付けたす。

ドット積

数孊では、内積たたは内積は、2぀の等しい長さの数のシヌケンス通垞は座暙ベクトルを取り、1぀の数を返す代数挔算です。


蚀語の甚語ず数孊的䞀貫性を改善するためのこの抵抗は、意欲をそそりたす。 私があなたに提瀺する事実の数に関係なく、䟋やナヌスケヌスの数に関係なく、「私はドットで倧䞈倫です」以倖の反論はありたせん。

@juliohm 、甚語は慣䟋の問題であり、正確さではありたせん。 ヒルベルト空間、特に無限次元空間の正匏な䜿甚法では、「内積」ずいう甚語がほずんど排他的に䜿甚されるこずに同意したす。 しかし、私が蚀ったように、「ドット積関数」をグヌグルで怜玢するず、その甚語の非公匏な䜿甚法もたくさん芋぀かりたす。 「このヒルベルト空間の2぀の芁玠の内積を取る」ず蚀うず、すべおの数孊者は、無限次元の空間であっおも、内積を参照しおいるこずを知っおいるので、他にないので、混乱の本圓の危険はありたせん。 「ドット積」ずいう甚語の暙準的な䞀般化。 そのため、「ドット」ず「内郚」のスペルの議論が䞭心的な問題であるずは思いたせん。

ここで必芁なセマンティクスず、新しいヒルベルト空間たたはバナッハ空間を定矩する堎合に型が実装する必芁のある関数のセットを決定するこずが重芁です。 珟圚、新しいヒルベルト空間を衚す型を定矩する堎合は、おそらくdotずnormを定矩する必芁がありたす珟圚、埌者のフォヌルバックがないため。 adjointだず思いたす。双察空間オブゞェクトぞのマッピングが必芁な堎合は

@Juthoが蚀うように、これは配列の配列の堎合によっおすべお耇雑になりたす。これは、そこに必芁な可胜性のあるものが耇数あるためです。 考えられるすべおのセマンティクスに暙準化された名前があるわけではないため、すべおの人を満足させる名前/セマンティクスを芋぀けるのは困難です。 vecdotセマンティクスの説明に぀いおは、25093を参照しおください。 私自身、ここでは良い答えがありたせん。

ここでいく぀かの可胜性

  1. x[i]' * y[i]の合蚈。 珟圚、これはdot(x,y)です。 行列のベクトル行列を䞎える堎合の内積ではなく、珟圚、倚次元配列のすべおが定矩されおいるわけではありたせん。
  2. 倚次元配列を含むdot(x[i], y[i])ず、 Number $の堎合はconj(x)*yの合蚈。 珟圚、これはvecdot(x,y)です。
  3. 䞀郚の関数、たずえばinner(x,y)は垞に真の内積であるず定矩されおおり、配列の堎合は合蚈inner(x[i],y[i])になりたす。これは、本質的に@Juthoが必芁ずする「再垰的内積」です。 しかし、行列Aの堎合、この内積は、珟圚のnorm定矩である誘導ノルムnorm(A)ず矛盟したす。 これを修正するには、行列のnorm(A)をデフォルトでフロベニりスノルムに倉曎する必芁がありたす。これは、広範囲にわたる重倧な倉曎になる可胜性がありたす。

質問25093で郚分的に説明されおいたすは、Baseでこれらの3぀すべおが必芁かどうか、たたは2぀およびどの2぀、そしおそれらを䜕ず呌ぶか​​で逃げるこずができるかどうかです。 @Juthoの提案は、私が理解しおいるように、基本的にBaseのオプション2を削陀し、オプション3にvecdotずvecnormを䜿甚するこずです。はゞュリアにかなり独特で、たずえば無限次元のヒルベルト空間では少し奇劙です。 もちろん、それは䞖界の終わりではありたせん。

もう1぀の可胜性 vecdotで行うこずずは倚少関係ありたせんは、 dotが真の内積である必芁があるこずを戻るこずです。 ぀たり、動䜜1を削陀し、 dot(x::AbstractVector, y::AbstractVector)をsum dot(x[i],y[i]) $ず等しくしたす。 それでも、倚次元配列に察しおは定矩しないでください normずの䞀貫性を保぀ため。

私の珟圚の個人的な傟向は、 dotを真の内積 normず䞀臎しおいる必芁がありたすずしお定矩し、ベクトルのdot(x[i],y[i])の合蚈に倉曎するこずです぀たり、行列のベクトルの堎合、倚次元配列に察しおは定矩したせん。 次に、 vecdotを定矩しお、 @ Juthoが提案するように、フォヌルバックvecdot(x,y) = dot(x,y)を䜿甚しおvecdot $を再垰的に呌び出したす。 最埌に、新しい「ヒルベルト空間」タむプはdotずnormを定矩する必芁があるず蚀いたす。 これは、私にずっお最も混乱が少なく、最も理解しやすい倉曎のように思えたす。

 norm(x) = sqrt(real(dot(x,x)))フォヌルバックも可胜ですが、スプリアスオヌバヌフロヌに察しお脆匱であるため、倚少危険です。技術的な理由から、フォヌルバックずしおsqrt(dot(x,x))を䜿甚できないこずに泚意しおください。 Realの結果であり、 Complexの結果ではありたせん。

この有益な反応をありがずう@stevengj 。 ちょっずしたコメント

フォヌルバックvecdot(x,y) = dot(x,y)䜿甚したす。 最埌に、新しい「ヒルベルト空間」タむプはdotずnormを定矩する必芁があるず蚀いたす。

それには2぀の問題がありたす。 $ vecdotは、䞀般的なむテレヌタを凊理するためのAny匕数をすでに受け入れおいるため、 vecdot(x,y) = dot(x,y)フォヌルバックは存圚できたせん。 2番目の問題は、 dotずnormが、ナヌザヌタむプのようなベクトルが定矩する必芁のある真の内積ずノルムにさらされおいる堎合、たずえばKrylovメ゜ッドを䜿甚しおパッケヌゞを䜜成する堎合でも完党に䞀般的なベクトルのような型で機胜するはずですが、ナヌザヌがネストされた配列たたは倚次元配列をベクトルのようなオブゞェクトずしお䜿甚したい堎合は、ただ機胜したせん。 したがっお、 vecdotずvecnormは、䞀般的な内積であり、ベクトルのようなオブゞェクトのノルムであるず私は䞻匵したす。 これは、行列の堎合、ほずんどの人が実際にnormが誘導された行列/挔算子のノルムであるこずを期埅しおいるずいう事実ずもよく䞀臎したす。

実際のナヌスケヌスに぀いおこれが䟋倖的なケヌスではないこずを瀺すため。 確率行列は最倧のペロン-フロベニりス固有倀を持ち、察応する固有ベクトルは固定小数点確率分垃を衚したす。 その量子䞀般化では、確率分垃は正定倀行列密床行列に䞀般化され、そのような行列は完党に正のマップ、぀たりマップrho -> sum(A[i] rho A[i]^\dagger for i = 1:N)の固定点最倧固有倀に察応する固有ベクトルです。したがっお、 rhoは密床行列であり、 A[i]はすべおのiの行列です完党に正のマップを衚すKraus挔算子ずしお知られおいたす。 行列の次元が倧きい堎合、固定小数点密床行列を芋぀けるにはアヌノルディ法が最適です。

私の珟圚の個人的な傟向は、ドットを真の内積ノルムず䞀臎しおいる必芁がありたすずしお定矩し、ベクトルのドットx [i]、y [i]の合蚈に倉曎するこずです。 最埌に、新しい「ヒルベルト空間」タむプはドットずノルムを定矩する必芁があるず蚀いたす。

それはすでに倧きな改善です。 Baseでinnerセマンティクスを持぀ようにdotを文曞化するず、少なくずもナヌザヌは䞍芁なラむブラリをむンポヌトせずに独自のスペヌスを定矩できたす。 名前付けには満足しおいたせんが、少なくずも機胜は必芁な人が利甚できるようになりたす。

はい、「ヒルベルト空間」タむプに実装するための文曞化されたむンタヌフェヌスがあるず䟿利だず思いたす。

もちろん、ベクトル空間のこの䞀般的なむンタヌフェむスに぀いお考えるず、䞊蚘のようにnormが含たれおいる堎合、それは行列のフロベニりスノルムになるはずですすべおの配列はベクトルの芁玠であるため、高次元配列の堎合は䞀般化しおくださいスペヌス。 その堎合、行列甚に別の「挔算子ノルム」関数 matnormたたはopnormなど、たたはnormのキヌワヌド匕数...が必芁になりたす。

@andyferris 、私の最埌のコメントに泚意しおください。 normずdotは、高次元配列やネストされた配列など、Juliaのオブゞェクトのようなベクトルでも機胜しないため、䞀般的なヒルベルト空間むンタヌフェヌスにはなりたせん。 したがっお、 vecdotずvecnormは、このための「より良い」最も壊れにくいずいう意味で候補です。

このトピックを埩掻させるこずは、近い将来、この蚀語で行うず予想される数孊のタむプに非垞に関連しおいるず思いたす。 内積の䞀般性ずセマンティクスを改善するために䜕が行われるかに぀いおのコンセンサスはありたすか

これが、積に関する私の個人的な数孊オントロゞヌの䞀郚です。
それが蚘憶を磚く/コンセンサスをもたらすのを助けるこずができれば

ボヌナスりィキペディアの審刀はありたせん

この時点で、25093での@Juthoの提案は、このコンテキストではvec*の甚語が少し奇劙ですが、最も混乱の少ない倉曎のように芋えたす。

vec*の甚語がおかしいこずに同意したす。 そのため、関数の名前を暙準名に倉曎するず、すべおのナヌザヌにずっお有益になりたす。

同様に、 vec*の甚語が奇劙であるこずに同意したす。

vecdotの代わりに、新しいメ゜ッドinnerを導入するこずもできたすが、 vecnormを「眮き換える」ための適切な名前がわかりたせん。 実際、 vecnormが悪いずは思いたせん。ベクトルノルムは、必芁な操䜜の十分に確立された明瀺的な甚語です。

ここでの基本的な問題は、通垞のnorm(A)が内積に察応しない行列ず倚次元配列、および䞊蚘の配列の配列にありたす。 これらの堎合、どの内積が意図されおいるかを瀺すために、ある皋床の曖昧性解消たずえばvec*たたはfro* が必芁です。

デフォルトでvecdotに蚭定されおいるinner関数を䜿甚するこずもできたすが、同じ関数に2぀の名前を付けるのは少しばかげおおり、ノルムを䜕ず呌ぶか​​ずいう問題がありたす。

たた、 vecdotの名前は奇劙だず思いたす。実際、それが存圚するこずすら知らず、そのために独自の関数を䜜成しおいたした... innerず呌ばれたす。

私の理解では、奇劙なvecdotを廃止しお、 inner $を優先し、ナヌザヌが独自のスペヌスを実装するための内積セマンティクスを䞎えるこずができたす。

normに぀いおは、わかりたせん。 私はこの問題を開いお内積に぀いお議論したした。おそらく、Baseの芏範の状態に぀いお議論するために別の問題が適切であるでしょう。

vecdotずvecnormの代わりに、$ inner(x,y)ずinnernorm(x) = sqrt(inner(x,x)) オヌバヌフロヌを回避するために最適化された特殊なケヌスを䜿甚を䜿甚できるず思いたす。 innernormは少し珍しいですが、文脈䞊はかなり明確です。

この倉曎に賛成です。 innerずinnernormずいう名前は明確で、抂念ず䞀臎しおいたす。 圌らがJuliav1.0に到達できたらいいのにず思いたす。

innerずinnernormは私には問題ないようです。

私の意芋では、私たちのnorm関数は、Juliaの汎甚関数ずディスパッチシステム、およびディスパッチが行われるべきではない「クリアむンタヌフェむス」ず呌ばれるものにあたりうたく適合しおいたせん。セマンティックの遞択、実装の遞択だけ。 個人的には、「 normはベクトル空間の芁玠のノルムを返す」ず蚀うこずができたす。ここで、行列ず線圢挔算子は䟝然ずしおベクトル空間の芁玠ですこれらを远加しおスカラヌを掛けるこずができたす 。 たずえば、「 opnormは線圢挔算子の挔算子ノルムを返す」たたはmatnormなどを䜿甚するこずもできたす。

珟時点では、「 normは、芁玠が線圢挔算子でもない限り、ベクトル空間の芁玠のノルムを返したす。線圢挔算子の堎合は、代わりに挔算子ノルムを提䟛したす」。 個人的には、掟遣は決しお驚くべきこずではないず感じおいたす。

぀たり、垞にベクトルノルムを実行する関数ず、垞に挔算子ノルムを実行する別の関数を奜みたす。䞡方を実行しようずする関数はありたせん。

@andyferris +1空間内の内積によっお誘発される芏範ではない特定の芏範は、より具䜓的な名前を持぀こずができたす。 normずいう名前は、正確にnorm(x) = sqrt(inner(x,x))を意味し、ナヌザヌタむプの必芁に応じお再定矩できたす。

個人的には、「 normはベクトル空間の芁玠のノルムを返す」ず蚀えたす。

珟圚のnorm関数は、その定矩を満たしおいたす。 行列の堎合、ベクトル空間の完党に有効なノルムである誘導挔算子ノルムを蚈算したす。 ベクトル空間は内積や芏範を持っおいる必芁はありたせん。

挔算子ノルムが「ベクトル空間のノルム」ではないず考える堎合、「ノルム」の定矩に぀いお倚少混乱するかもしれたせん。

これは、 normずinnernormの䟿利な違いでもありたす。 normを定矩する堎合、それはあなたがバナッハ空間たたは少なくずもノルムベクトル空間を持っおいるこずだけを意味するず蚀いたす。 innernormを定矩するず、ヒルベルト空間たたは少なくずも内積空間があり、このノルムがinnerず䞀臎しおいるこずを意味したす。

たずえば、適応数倀積分ala quadgkは、内積空間ではなく、ノルムベクトル空間のみを必芁ずするものです。

確かに、申し蚳ありたせんが、私はおそらく私の蚀語に少し䞍正確でした。 さたざたな挔算子ノルムを含む、ベクトル空間には明らかに倚くの有効なノルムがありたす。

私が埗おいるのは、暗黙的ではなく明瀺的であるずいう基準の遞択を奜むかもしれないずいうこずだず思いたすか たた、同じ関数を䜿甚するずたずえば、远加のキヌワヌド匕数なしで、「同じ」ノルムが埗られたす。この堎合、ナヌクリッドはAbstractArrayに察しおいくぶん防埡可胜な遞択のように芋えたす。

これは、 normずinnernormの䟿利な違いでもありたす。 ノルムを定矩する堎合、それはあなたがバナッハ空間たたは少なくずもノルムベクトル空間を持っおいるこずだけを意味するず蚀いたす。 innernormを定矩する堎合、ヒルベルト空間たたは少なくずも内積空間があり、このノルムがinnerず䞀臎しおいるこずを意味したす。

これは理にかなっおいるように芋えたすが、オブゞェクトにinnernormがある堎合、別のnormが必芁になるのはなぜでしょうか。 あるいは、バナッハ空間のむンタヌフェヌスにはnormが必芁ですが、内積空間のむンタヌフェヌスはnormずinnerの䞡方を提䟛するこずを提案したす。 これらの関数は、必芁に応じおバナッハたたは内積空間のオブゞェクトを期埅する汎甚コヌドで䜿甚できたす線集バナッハ空間で機胜するコヌドは自動的に内積空間でも機胜するず考えられたす。

norm(x)は垞に、ある皮の芁玠ごずのナヌクリッドノルム぀たり、行列のフロベニりスノルムを参照しおいるず提案しおいるず思いたす。぀たり、基本的にvecnormは再垰の堎合を法ずしおしおいたす。 この堎合、 dot(x,y)を察応する内積に再定矩するこずもできたす innerも機胜したすが、 dotには䞭眮バリアントx ⋅ yの利点がありたす。

原則ずしおこれで問題ありたせんが、これは重倧な倉曎であり、0.7の前に少し遅れる可胜性がありたす 

L2は高次元でも良いデフォルトですか
この蚘事は距離に぀いお話したすが、それは芏範にも関係する可胜性がありたす
https://stats.stackexchange.com/questions/99171/why-is-euclidean-distance-not-a-good-metric-in-high-dimensions

この堎合、dotx、yを察応する内積になるように再定矩するこずもできたす内積も機胜したすが、ドットには䞭眮バリアントx⋅yの利点がありたす

dot完党に取り陀くこずはできたすか 䞭眮蚘法は、 dotずいう関数の存圚ずは無関係である必芁がありたす。 Julia配列のinnerメ゜ッドを䜿甚しお䞭眮を定矩するだけです。 それは可胜ですか

それが実際の内積です。ナヌクリッド幟䜕孊のR^nのxベクトルずyベクトルの間の内積の䟿利な衚蚘x⋅yです。

@stevengjそれは良い芁玄だず思いたす。

@ o314 L2は高次元の良いデフォルトですか おそらくそうではありたせんが、たずえばnorm(v::AbstractVector)によっお遞択されたノルムが$$ length(v) $に䟝存しおいる堎合は、本圓に嫌いです:)行列か高次元配列かを二床ず掚枬したくないのですが、 「L2には倧きすぎたす」-おそらくこれはナヌザヌが明瀺的にマヌクする必芁があるず思いたすか

@juliohmそれは間違いなく可胜ですが、前述のように、これらは私たちが提案しおいる砎壊的な倉曎です。 繰り返したすが、再垰的な堎合に䜕をすべきか、およびinnerずdotの間の考えられる違いに関する以前の議論を法ずしお。

@stevengj 、 @ andyferrisが意味するこずの私の解釈は、ダックタむピングのために、ナヌザヌがオブゞェクトをベクトルずしお解釈したいかどうかを刀断するのが難しいずいうこずですそしお察応するベクトルp -normを䜿甚したすたたは挔算子ずしおそしお誘導されたp -normを蚈算したす。 したがっお、どのような動䜜が必芁かを明瀺的に指定する以倖に遞択肢はないず思いたす。 珟圚のアプロヌチは、 normが入力に基づいおベクトルノルムず誘導ノルムのどちらを遞択するかを暗黙的に掚枬しようずするずいう意味で少し奇劙です。 vecnormは、必芁なこずを明瀺的に指定する方法です。ベクトルノルムこれがvecnormのような悪い名前を芋぀けられない理由でもありたす。 より根本的な倉曎は、 normを垞にデフォルトでベクトルノルムにし、キヌワヌド匕数たたは別の関数を䜿甚しお、誘導ノルムが必芁な堎合に明瀺的に指定するこずです。

䞀方、私はinnernormずいう名前も気にしたせん。これは、これが内積ベヌスの暙準であるずいう点で明瀺的です぀たり、ナヌクリッドの堎合は垞にp=2 。 カスタムオブゞェクトの(vec)normがむンタヌフェむスの䞀郚ずしおオプションの匕数pをサポヌトする必芁があるかどうかを刀断するのは難しいず思いたす。私のナヌスケヌスの䞭には、 p=2だけが簡単だからです。蚈算したす。

それが実際の内積です。ナヌクリッド幟䜕孊のR^nのxベクトルずyベクトルの間の内積の䟿利な衚蚘x⋅yです。

䞀般的な耇雑なベクトル空間のコンテキストでx ⋅ yずいう衚蚘を芋たこずを思い出せないずいう意味で、私はこれに同意したす。 このような堎合、数孊衚蚘(x,y)たたはディラック衚蚘< x | y >のみが䜿甚されるず思いたす。 電磁気孊では、3次元ナヌクリッド空間のベクトルにE ⋅ Bを䜿甚するこずが倚く、耇玠数衚蚘぀たり、フェヌザを䜿甚しおも、これは耇玠共圹を意味したせん。 必芁に応じお、そのような堎合、耇玠共圹が明瀺的に瀺されたす。 したがっお、 dotが耇雑なたたぱルミヌト共圹なしsum(x_i * y_i)になり、 innerが䞀般的な内積空間の正しい内積になったずしおもかたいたせん。 残念ながら、これはおそらく単䞀のリリヌスサむクルでは実行できたせん。

L2は高次元の良いデフォルトですか おそらくそうではありたせんが、たずえば、normv :: AbstractVectorによっお遞択されたノルムがlengthvに䟝存しおいる堎合は、本圓に嫌いです:)行列たたは高次元配列が「L2には倧きすぎたす」-おそらくこれはナヌザヌが明瀺的にマヌクする必芁があるず思いたすか

私は2Dず3Dを扱うBIMの䞖界で働いおいたすが、4d、5d、6dは7dかもしれたせん。 これ以䞊進むこずはありたせん。 どの時点でも、どの次元で䜜業し、どのアルゎが関䞎しおいるかがわかりたす。 それで十分です。

MLや情報怜玢などで働く人の芖点を衚珟するこずはできたせん。そこには、norminfの方がいいかもしれたせん。 私のハメ撮りで重芁なのは掚枬可胜性ず安定性です。 MLの人々が自分たちのものに異なるデフォルトを必芁ずしおも、私はたったくショックを受けたせん。 混乱がなければ。 䟋えば。 コンパむル時に明瀺的か぀静的に決定されたす。 それがアルゎスの適甚䞭に安定しお䞀貫しおいる堎合、それはさらに莅沢です。

arraysimilarからむンスピレヌションを埗おいたす。完党には実装されおおらず、テストされおいたせん。

norm2 = x -> x |> inner |> sqrt
norminf = ...
NMAX = 10
for N in 1:NMAX
    <strong i="13">@eval</strong> begin norm(a::Array{T,N}) where {T} = norm2 end
end
norm(a::Array{T,n}) where {T} = norminf

ドットを完党に取り陀くこずはできたすか 䞭眮蚘法は、ドットず呌ばれる関数の存圚ずは無関係である必芁がありたす。 Julia配列のinnerメ゜ッドで䞭眮を定矩するだけです。 それは可胜ですか

norm(x::AbstractVector, p::Real=2) = vecnorm(x, p) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L498
vecdot(x::Number, y::Number) = conj(x) * y # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L657
dot(x::Number, y::Number) = vecdot(x, y) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L659
function dot(x::AbstractVector, y::AbstractVector) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L677

# Call optimized BLAS methods for vectors of numbers
dot(x::AbstractVector{<:Number}, y::AbstractVector{<:Number}) = vecdot(x, y) # https://github.com/JuliaLang/julia/blob/master/stdlib/LinearAlgebra/src/generic.jl#L698

Dot / vecdotは、共圹を䜿甚し、い぀BLASに移動するかを決定するこずを意味したす。 これはどこかで凊理する必芁がありたす。 ただし、これは単䞀の名前空間で管理できる必芁がありたす。

L2は高次元の良いデフォルトですか おそらくそうではない

L2は、無限次元空間関数などの最も䞀般的な基準でもありたす。 任意のベクトル空間を期埅するのが劥圓なデフォルトだず思いたす。

もちろん、他の芏範も利甚できるようにしたいのです。 norm(x)を可胜な限り芁玠ごずのL2に再定矩するず、 norm(x, p)は芁玠ごずのLₚになり、察応する誘導/に察しお他の関数 opnormなどが必芁になりたす。䜜甚玠ノルム。

䞀般的な耇雑なベクトル空間のコンテキストでx ⋅ yずいう衚蚘を芋たこずを思い出せないずいう意味で、私はこれに同意したす。

別のスレッドIIRCでいく぀か匕甚したしたたずえば、BLASは耇雑な内積にdotを䜿甚し、関数の内積の甚語を䜿甚しおも教育孊的゜ヌスを芋぀けるこずができたす。 たさに「内積」ずいう甚語は、通垞、「内積の䞀般化」ず呌ばれたす。 ナヌクリッド内積のdotの衚蚘に驚く人はいないず思いたす。たた、䞭眮挔算子があるず䟿利です。

もちろん、 dotをそのたたにしお、 innerを導入するこずもできたすが、それは玛らわしい二分法を生み出すず思いたす。最も䞀般的なケヌスでは、関数は同等ですが、奇劙なケヌスでは䟋えば、行列の配列それらは異なりたす。

しかし、繰り返しになりたすが、倉曎を壊すには少し遅れる可胜性があるため、 innernormずinnerに頌らなければならない可胜性がありたす。 いずれにせよ、誰かができるだけ早くPRを䜜成する必芁がありたす。

コンセンサスフォヌムの合理的な尺床があれば、関連する短いタむムスケヌルでの実装の調査にある皋床の垯域幅を費やすこずができるかもしれたせん。朜圚的な重倧な倉曎が含たれたす。 これらの操䜜のセマンティクスを明確にし、明瀺的な名前を付けるずいう意欲に感謝したす。 䞀番

2぀の䞻なオプションがありたす。

  • ノヌブレヌク、機胜を远加したす inner(x,y)およびinnernorm(x) 。 vecdotずvecnormを眮き換え、配列の配列を再垰的に凊理したす。

  • 速報 norm(x,p=2)を垞に芁玠ごずに再垰的に倉曎し、 vecnormを眮き換え、挔算子/誘導ノルムに新しい関数opnormを導入したす。 vecdotを眮き換えお、察応する芁玠ごずの内積をdot(x,y) $にしたす。 たたは、名前をinnerに倉曎したすが、䞭眮挔算子があるず䟿利です。 dotずinnerの䞡方があるのは面倒です。

れロから蚭蚈する堎合は2を遞択したすが、 normの意味を黙っお倉曎するには混乱が倧きすぎる可胜性がありたす。

䞭間オプションの1぀は、 innerずinnernormを定矩し vecdotずvecnormを廃止、 norm(matrix)をopnormに廃止するこずです。 norm(matrix) = innernorm(matrix)を再導入したす。 そうすれば、最終的にはinnerずnormを䜿甚できるようになり、 dotを配列のベクトルの珟圚の奇劙な獣ずしお残したす innerず䞀臎したす。数倀のベクトルの堎合は

innernormの奇劙な点の1぀は、L1たたはLinfの「芁玠ごずの」ノルムを指定する方法が必芁なこずですが、どちらも内積に察応しおいないため、 innernorm(x,p)は少し誀称です。

私はあなたの䞭間オプションが奜きです。

䞊で述べたように、私はinnernorm(x)ずいう名前が奜きです。これは、 p=2を意味し、2番目の匕数があっおはならないからです。 内積ノルムの蚈算方法しか知らないオブゞェクトがありたす。 しかし、珟圚の(vec)normでは、 p匕数が想定されるBaseむンタヌフェむスの䞀郚であるかどうかが䞍明であるため、2番目の匕数を省略するか、サポヌトするかがわかりたせん。ただし、 p != 2を明瀺的にチェックするず、゚ラヌが発生したす。

しかし、提案の䞭間段階で非掚奚ではない方法でvecnorm(matrix, p!=2)を実行できないずいう問題がありたす。

たた、䞭間オプションも気に入っおいたす。すぐに重倧な倉曎を加えるのではなく、芏範の非掚奚の適切なサむクルを確実に実行したいず考えおいたす。 ナヌザヌずしお、重倧な倉曎は私を怖がらせたすが、v1.0のコヌドの非掚奚を修正するこずは、将来のためのクリヌンで明確なコヌドぞの投資のようなものだず思いたす。

実際にinnernormが必芁ですか、それずも今のずころvecnormを䜿甚できたすか埌でnormを優先しおvecnormを廃止したす

dotをinnerに眮き換えるだけでは、実際に隒ぎが起こる可胜性はありたせん...内積がドット積の䞀般化であるこずも十分に明らかだず思いたす。

倉曎は、2぀の別々のPRで実装できたす。

  1. dotをinnerに眮き換えお、䞀般的な意味を付けたす。 必芁に応じお、䞭眮\cdot衚蚘がJulia配列間の内偎を指すようにしたす。
  2. 芏範の倉圢ず甚語に関するさらなる議論ず非掚奚のサむクル。

私の理解では、PR1はJuliav1.0より前にマヌゞされる可胜性がありたす。 壊れおいたせん。

dotをinnerに眮き換えおも、 dotは珟圚、配列の配列の真の内積ではないため、壊れるこずになりたす。したがっお、名前を倉曎するだけでなく、意味を倉曎するこずになりたす。 私は意味を真の内積に倉曎するためのものですが、意味を倉曎しおも真の内積ずしお定矩する、 dotず綎り続けるこずに問題はありたせん。

したがっお、0.7では次のこずができたす。

  1. norm(matrix)をopnorm(matrix)に、 norm(vector of vectors)をvecnormに廃止したす。
  2. $ sum dot([vector of arrays], [vector of arrays])を非掚奚にしたす。
  3. vecdot(x,y)ずvecnorm(x, p=2)がナヌクリッド内積/芏範 p=2の堎合であり、それらを再垰的にするずしたすこれは少し壊れおいたすが、実際にはおそらく倧したこずではありたせん 。

次に、1.0では

  1. vecnormをnormに、 vecdotをdotに廃止したす。 これが1.0リリヌスルヌルで蚱可されおいるかどうかわからない、@ StefanKarpinski

驚くべきこずに、 numpy.inner関数は必ずしも内積ではないこずに泚意しおください。しかし、 innerずdotに関するNumPyの甚語は、しばらくの間奇劙でした。

私がそれをdotず぀づ​​り続けるこずを奜む理由

  • 䞭眮スペルがあるず䟿利です。
  • 通垞の有限次元ベクトル空間を操䜜する非数孊者にずっお、 dotはナヌクリッド内積のより䞀般的な名前です。 数孊者は、任意のヒルベルト空間の内積関数にdotずいう名前を䜿甚するこずに簡単に慣れたす。「内積」は、そのような空間に他の可胜な意味はありたせん。
  • innerずdotの䞡方があるず、混乱する堎合がありたす。䞀臎する堎合もあれば、䞀臎しない堎合もあるためです珟圚のdotの意味を維持する堎合。
  • 線圢代数以倖では、 innerはコンピュヌタサむ゚ンスで他の倚くの朜圚的な意味を持っおいるため、Baseからこの名前を゚クスポヌトするのはやや面倒です。

むンナヌずいう名前に察する反察に぀いお詳しく教えおください。 ただ分​​からない
このスレッドのすべおの人が甚語に反察するこずを奜む理由は
同意する

2018幎5月15日火曜日、午前5時13分スティヌブンG.ゞョン゜ン[email protected]
曞きたした

numpy.innerに泚意しおください
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.inner.html
驚くべきこずに、関数は必ずしも内積ではありたせん。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/JuliaLang/julia/issues/25565#issuecomment-389144575 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/ADMLbdcpeWo7M4prYz76NoqUPIkfVPP3ks5tysZlgaJpZM4ReGXu
。

理由のどれも私に説埗力がありたせん

>>

  • 䞭眮バリアントがあるず䟿利です。

はい。名前を倉曎しおも、䞭眮蚘法は匕き続き存圚できたす。
䞊で説明したように内偎。

>>

  • 通垞の有限次元で動䜜する非数孊者向け
    ベクトル空間、ドットはナヌクリッド内郚のより䞀般的な名前です
    補品。 数孊者は、名前のドットを䜿甚するこずに簡単に適応したす
    任意のヒルベルト空間の内積関数—「内積」には
    そのようなスペヌスの他の可胜な意味。

この議論は良くありたせん普通の人々に間違ったこずを教えたしょう
圌らは怠惰であり、新しい適切な単語を孊ぶこずができないため、甚語、
そしお数孊者に圌らの意志に反しお間違った甚語を䜿うように匷制したす。

>>

  • 内偎ずドットの䞡方があるず混乱したす。
    䞀臎する堎合もあれば、䞀臎しない堎合もありたす珟圚のドットを保持する堎合
    意味。

䞡方は必芁ありたせん。あたり䞀般的ではない名前を削陀しおください。
この時点でドット。

>>

  • 線圢代数の倖では、内郚には他の倚くの可胜性がありたす
    コンピュヌタサむ゚ンスにおける意味、したがっおそれはやや厄介です
    この名前をBaseから゚クスポヌトしたす。

線圢代数の倖で、私はドットの倚くの甚途を芋぀けるこずができたす。 さらに倚くの
完党に異なるこずを意味するドット䞭眮蚘法。

>>

@juliohmの最埌の投皿を固定フォヌマットで再投皿しおいたす。


理由のどれも私に説埗力がありたせん

䞭眮バリアントがあるず䟿利です。

はい。䞊で説明したように、innerぞの名前倉曎に関係なく、䞭眮蚘法は匕き続き存圚できたす。

通垞の有限次元ベクトル空間を操䜜する非数孊者にずっお、ドットはナヌクリッド内積のより䞀般的な名前です。 数孊者は、任意のヒルベルト空間の内積関数に名前ドットを䜿甚するこずに簡単に適応したす。「ドット積」は、そのような空間に他の可胜な意味はありたせん。

この議論は良くありたせん。怠惰で新しい適切な単語を孊ぶこずができないので、普通の人々に間違った甚語を教えたしょう。そしお数孊者に圌らの意志に反しお間違った甚語を䜿わせたす。

内偎ずドットの䞡方があるず混乱する堎合がありたす。これは、䞀臎する堎合もあれば、䞀臎しない堎合もあるためです珟圚のドットの意味を維持する堎合。

䞡方は必芁ありたせん。あたり䞀般的ではない名前を削陀しおください。この時点でドットであるこずに同意したす。

線圢代数以倖では、innerはコンピュヌタサむ゚ンスで他の倚くの朜圚的な意味を持っおいるため、Baseからこの名前を゚クスポヌトするのはやや面倒です。

線圢代数の倖で、私はドットの倚くの甚途を芋぀けるこずができたす。 完党に異なるこずを意味するドット䞭眮蚘法に぀いおはさらに。

はい。䞊で説明したように、innerぞの名前倉曎に関係なく、䞭眮蚘法は匕き続き存圚できたす。

const ⋅ = innerを定矩するこずはできたすが、甚語に䞀貫性がありたせん。 「ドット積」を䞀般的な内積ずしお䜿うのは嫌いだず思いたしたか

数孊者に圌らの意志に反しお間違った甚語を䜿甚するように匷制する

数孊者は、甚語が正しいこずでも間違っおいるこずでもないこずを知っおいたす。それは埓来型たたは非埓来型そしおおそらく䞀貫性たたは䞀貫性がないにすぎたせん。 そしお、ほずんどの人は、芏範的なスペリングに情熱を持っおいるので、数孊には入りたせん。私の経隓では、量子力孊ではベクトルは「状態」ず呌ばれ、随䌎䜜甚玠は「短剣」ず呌ばれたす。二重ベクトルは「ブラ」ず呌ばれ、それらは厇高に無関心です。 同様に、ゞュリアでは内積がdot(x,y)たたはx ⋅ yず綎られおいるず蚀っおも、経隓豊富な数孊者が2回以䞊点滅するこずはないず思いたす。特に、甚語はすでに理解されおいるためです。倚くの文脈での同矩語。 「この関数空間で2぀の関数の内積を取る」ず蚀うず、内積を参照しおいるこずをすぐに知らない数孊者が芋぀かるずは思えたせん。

䞀方、蚓緎を受けた数孊者ではなく、抜象的な内積空間に觊れたこずがない人぀たり、倧倚数のナヌザヌにずっお、私の経隓では、なじみのない甚語はより障害になりたす。 「ゞュリアで2぀のベクトルの内積を取埗するにはどうすればよいですか」 FAQになりたす。

セマンティクスを遞択する以倖に、ここで解決すべき数孊的な問題は実際にはありたせん。 スペルの質問は、玔粋に利䟿性ず䜿甚法の1぀です。

線圢代数の倖で、私はドットの倚くの甚途を芋぀けるこずができたす。 完党に異なるこずを意味するドット䞭眮蚘法に぀いおはさらに。

ゞュリアず他の倚くのプログラミング蚀語が䜕幎もの間dotを持っおいお、それが問題ではなかったこずを陀いお。 innerは新しい砎損になりたす。

最終的に、このたたは他の関数のスペルは、セマンティクスや非掚奚パスず比范しお小さな問題ですが、バランスのヒントはdotを支持するず思いたす。

確かにconst⋅=innerを定矩できたすが、甚語に䞀貫性がありたせん。 「ドット積」を䞀般的な内積ずしお䜿うのは嫌いだず思いたしたか

ただ分​​からないず思いたす。 ドットを内積ず呌ぶこずに矛盟はありたせん。 これは内積であり、私たちの倚くにずっお非垞に具䜓的で圹に立たないものです。 sum(x.*y)を超えるものはありたせん。

dotずいう甚語がinnerのセマンティクスを持぀Juliaで終わる堎合、これは歎史的な灜害であり、倚くの人がむラむラするこずを保蚌できたす。 教宀で教授が次のようなこずを説明するのを予芋できたす。「ご存知のずおり、これから空間の内積を定矩したすが、ゞュリアでは誰か@stevengjがそれをドットず呌ぶこずにしたした。」

それが起こった堎合に備えお、今埌の参考のためにこのスレッドのスクリヌンショットを撮るこずを確認したす。

@stevengjがdotの甚語を䞻匵しおいるのはあなただけであり、他の誰もそれに反察を衚明しおいたせん。 決断を䞋す前に、この事実を再考できればいいのにず思いたす。

これは内積であり、私たちの倚くにずっお非垞に具䜓的で圹に立たないものです。 sumx。* yに過ぎたせん。

「内積」がℝⁿのナヌクリッド内積のみを参照できるず考える堎合は、 const ⋅ = innerを定矩するのではなく、 ⋅(x::AbstractVector{<:Real}, y::AbstractVector{<:Real}) = inner(x,y)のみを定矩する必芁がありたす。

䞡方の方法を䜿甚するこずはできたせん。 innerは⋅を䞭眮同矩語ずしお䜿甚できたすこの堎合、䞭眮挔算子は甚語で「間違っお」おり、名前に䞀貫性がありたせん。䞭眮同矩語はありたせん1぀の特別な堎合を陀く。

教宀で教授が次のようなこずを説明するのを予芋できたす。「ご存知のずおり、これから空間の内積を定矩したすが、ゞュリアでは誰か@stevengjがそれをドットず呌ぶこずにしたした。」

ハハ、私はこの架空の憀慚した教授から熱を奪う぀もりです。 真剣に、「ドット積」ずいう甚語がℝⁿでのみ䜿甚されおいるず思う堎合、たたはこの甚語が他のヒルベルト空間で䜿甚されおいる堎合、数孊者が憀慚しおいるず思う堎合は、もっず調べる必芁がありたす。

これは歎史的な灜害になりたす

真剣に

この議論は、歓迎的で垂民的で建蚭的な環境ず考えられるものを超えお䟵食されおいるようです。 意芋や背景は異なりたすが、個人的な攻撃や誰かを非難するこずは控え、すべおの圓事者が誠意を持っお自分の䞻匵に぀いお議論しおいるず想定しおください。

教宀で教授が次のようなこずを説明するのを予芋できたす。「ご存知のずおり、これから空間の内積を定矩したすが、ゞュリアでは誰か@stevengjがそれをドットず呌ぶこずにしたした。」

ここで、スティヌブンが教授であるこずに泚意するこずも䟡倀があるかもしれたせん。 りィンク

私はたた、 inner dotを削陀するこずに぀いおも危機に瀕しおいたす。 dotずいう甚語は非垞に広く䜿甚されおおり、PythonやMATLABの堎合、Juliaに関数がないのは驚くべきこずです。 ただし、ℝⁿ以倖のベクトル空間、特に行列に適しおいるこずを考えるず、 innerずいう甚語も気に入っおいたす。

ちなみに、Juliaでどのメ゜ッドが実行されおいるかをテストしおいるずきに、 dotが実際のベクトル/行列でのみ機胜するこずに気付きたした。 それは意図的なものですか

内偎ずドットの䞡方があるず混乱する堎合がありたす。これは、䞀臎する堎合もあれば、䞀臎しない堎合もあるためです珟圚のドットの意味を維持する堎合。

@stevengj vecdotをinnerに眮き換え、 dotを維持するのは完党にばかげおいたすか 珟圚、あなたが説明しおいるその正確な問題は、 inner vecdotだけで、すでに存圚しおいたす。

OK ...楜しみにしおいたす、ラむブの提案は䜕ですか 圌らは

  • 幅広いタむプの䞀般的な内積ずしおdotを採甚したす。 ベクトルのベクトルではすでに正しく再垰的ですが、行列などで機胜するようにしたす @jebej dotずinnerの䞡方があるず、それほど䟿利ではないず思いたす。スティヌブンは、少なくずも口語的にdotを䜿甚しお内積を意味するこずがよくありたすが、これは誀りではありたせん。これは単なる甚語です。
  • normを䞊蚘のdotず、すべおのAbstractArray党䜓でもう少し䞀貫性のあるものにするこずを怜蚎しおください。最終的には、挔算子基準にopnormを導入したす AbstractMatrix および適切な非掚奚の埌に新旧衚蚘で norm(matrix) == vecnorm(matrix)を持ちたす。 この時点で、おそらくvecdotずvecnormもう必芁ありたせんか

そうですか これらは、少なくずも、ゞェネリックコヌドが内積空間を操䜜するための信頌できるペアずしおdotずnormを䜿甚できる、「クリヌンな」むンタヌフェむスを備えた比范的䞀貫した線圢代数のストヌリヌに到達するず思いたす。タむプに䟝存したせん。

@andyferris 、はい、この倉曎を行う堎合、必芁なのdotずnormだけだず思いたすこれらは珟圚、任意の次元の配列たたは配列の配列に察する再垰的なナヌクリッド挔算ですがノルムの堎合、 norm(x,p)をp-ノルムずしお定矩したすおよびopnormであり、 vecdotたたはvecnormはなくなりたす。

dotは珟圚、行列のベクトル22392の真の内積ではないため、 dotぞの倉曎は重倧な倉曎であるこずに泚意しおください。これは、2222022220その時点で、 vecdotを削陀するこずはIIRCずは芋なされたせんでした。 ただし、これは0.7で導入されたため、実際にリリヌスされたコヌドを壊すこずはありたせん。 実際、0.6のdotは、倚少偶然ですが、すでに任意次元の配列䞊のナヌクリッド内積です22374。 ここで提案されおいる倉曎は、その0.6の動䜜を埩元および拡匵し、それず䞀臎するようにnormを倉曎したす。

1぀の質問は、 norm(x,p)がnorm(x[i])たたはnorm(x[i],p)再垰的に呌び出すかどうかです。 どちらも朜圚的に有甚な動䜜です。 前者の方が䞀般的であるため、私は前者に傟倒したす— x[i]は、pノルムではなく、 normのみを定矩する任意のノルムベクトル空間である可胜性がありたす。 norm再垰的に呌び出すこずは、 vecnormが珟圚行っおいるこずでもあるため、 vecnormをnormに非掚奚にするこずず䞀臎しおいたす。

@jebej 、マスタヌず0.6の䞡方でdotは、耇雑な配列で機胜したす。たずえば、 dot([3im],[4im])は12+0im $を正しく返したす。

norm(matrix)をフロベニりスの暙準に倉曎するこずのもう1぀の良い点は、はるかに安いこずです。 norm(A-B)を䜿甚しお、2぀の行列の違いがどれほど倧きいかを把握するのが䞀般的ですが、ノルムの特定の遞択に぀いおはあたり気にしないでください。ただし、倚くのナヌザヌは、珟圚のデフォルトに気付かないでしょう。 norm(matrix)では、SVDを蚈算する必芁がありたす。

いく぀かの䞻芁なポむントの呚りにコンセンサスが圢成されるのを芋るのは玠晎らしいです :)誰かが私を殎る垯域幅がある堎合はやっおくださいか、アルファタグが前にヒットしない限り、26997を出荷した埌、珟圚のコンセンサスポむントの実装を行いたす。ベスト

将来の参照のための別のリンク https //math.stackexchange.com/a/476742

ここで意識的に採甚されおいる貧匱な呜名ず、単䞀の心によっお課された貧匱な決定を説明するため。 内積ず内積は、異なる数孊的特性を持っおいたす。 あなたは数孊の文献でよく知られおいるこずに反察しおコミュニティ党䜓を匷制しおいたす。

そしお将来の読者のために、私たちが集合的な決定を䞋した堎合、代わりに䜕をすべきだったか

# make dot what it is, a NOTATION
⋅(x::AbstractVector, y::AbstractVector) = sum(x[i]*y[i] for i in indices(x))

# replace the name dot by the more general inner
inner(x, y) = # anything

ℝⁿ以倖の内積に「ドット積」ずいう甚語を䜿甚するのは、宇宙で最初の人になるず思いたす。 このむノベヌションを䞖界に抌し付けるために、このスレッドに䞻に他の開発者を脅迫するこずによっお自分の意志を抌し付けるこずができたのは良いこずです ドット積が単なる「衚蚘」に远いやられるこずはなくなりたす。代わりに、内積を意味する蚘号になりたすすべおの人が知っおいるように、蚘号に意味を割り圓おるこずは「衚蚘」の反察です。

非垞に良い意思決定clapそれは間違いなくコンセンサスでした。 䞊蚘のコメントを読むず、誰もがどのように同意したかがわかりたす。 +1

たたは、それがどのようにコンセンサスであったかを非垞に明確にするために、いく぀かのコメントを匕甚する必芁がありたす。

>>

右-vecdotはinnerに名前を倉曎できたす

@andyferrisによる

オプション2おそらくより良いより数孊的に正しい名前を䜿甚する

内偎
寞法
しかし、芏範をどうするか

@Jutho

私は同意したす、vecdotの代わりずしお、新しいメ゜ッドinnerを導入するこずができたす

@Jutho

たた、vecdotの名前は奇劙だず思いたす。実際、それが存圚するこずすら知らず、そのために独自の関数を䜜成しおいたした...innerず呌ばれたす。

@jebejによっお

などなど...

人々は互いに声高に議論し、倚くの意芋の䞍䞀臎を提起するこずができたすが、それでも説埗され、賛吊䞡論のバランスをずるこずによっお必ずしも党䌚䞀臎ではありたせんがコンセンサスに到達したす。 ここに各オプションの長所ず短所の䞡方があるこずに同意したす。ここで暫定的にゲル化しおいるように芋える結果があなたが奜んだ結果ではないこずを残念に思いたすが、あなたがどう思うかわかりたせん私は自分の意志を「抌し付けた」。

もちろん、最終的な決定が䞋されたわけではありたせん。PRさえただありたせん。たしおや、䜕もマヌゞされおいたせん。

蚀語の聎衆に基づいお決定を䞋せたらいいのにず思いたす。 誰かがJuliaをツヌルずしお遞んだ堎合、その人は少なくずもinner補品ずいう甚語を聞いたこずがあるず思いたす。 これは非垞に人気のあるコンセプトであり、゚キゟチックずはほど遠いものです。 ゚キゟチックなものには、「氞続的なホモロゞヌ」、「量子論」などがありたすが、これはあたり普及しおおらず、この皮の甚語を含めるこずには反察です。

結局のずころ、私は科孊蚈算や数孊などに最適な蚀語が欲しいだけです。

@juliohm 、すべおの議論は、聎衆が誰であるかずいうニヌズに基づいおおり、私たち党員がゞュリアを可胜な限り優れた蚀語にしようずしおいたす。 数孊は぀づりを決定しないので、合理的な人々は甚語に぀いお異なる結論に達する可胜性がありたす。

たず、前述のように、 @ stevengjの珟圚の提案に確かに同意し、内積の䞀般名ずしおdotに固執するこずができたす。 たた、私はこの議論の進め方が嫌いであり、確かに正しく匕甚されたいず思いたす。 @juliohm 、あなたが私に垰する2番目の匕甚は私のものではありたせん。

そうは蚀っおも、賛吊䞡論を考慮した思考の糧ずしお、以䞋のこずを述べたいず思いたす。 以䞋は䞻に短所ですが、@stevengjが蚀及した長所に同意したす。 dotがsum(x[i]*y[i] for i ...)を意味するだけの堎合、別のナヌスケヌスが簡単に存圚する可胜性がありたす。 䞭眮ドット衚蚘が数孊で最もよく䜿甚される堎合、これは確かに通垞は意味です。 内積ずしお、䞭眮ドット衚蚘は通垞確かに排他的ではありたせんが実際のベクトル空間甚に予玄されおいたす。 他のナヌスケヌスには、 σ ⋅ nのようなものをパりリ行列のベクトルσずスカラヌのベクトルnで有効にするこずが含たれたす。 これは、他のスレッドで指摘されたように、 dotが珟圚実装されおいる方法の背埌にある動機の1぀でした。 BLASが実際のベクトルにdotのみを䜿甚し、耇玠数ベクトルにdotuずdotcを区別するこずを決定したずいう事実は、考慮すべきもう1぀の問題です。 BLASのバックグラりンドを持぀人々は、耇雑なベクトルを䜿甚しお、真の内積぀たり、 dotc が必芁なずきにdot(conj(u),v)たたはdot(u,v)を蚈算するかどうか混乱する可胜性がありたす。 さらに、圌らは最初に手元のベクトルの共圹コピヌを䜜成せずにdotuを実行する方法を探すかもし​​れたせん。

@Jutho匕甚はあなたのものです、あなたの完党なコメントは以䞋にコピヌされたす

私は、vecdotの代わりに、新しいメ゜ッドinnerを導入できるこずに同意したすが、vecnormを「眮き換える」ための適切な名前がわかりたせん。 実際、私は、悪いベクトルノルムが、私たちが望む操䜜の十分に確立された明瀺的な甚語であるずいうvecnormを芋぀けたせん。

いずれにせよ、匕甚は、私たちがこの䞻題に぀いお考えるずき、ここで倚くの人の願望が䜕であるかを瀺すこずを目的ずしおいたす少なくずも最初の自然な考えずしお。 あなたが時間の経過ずずもにあなたの欲求を倉えたなら、それは別の話です。 私自身、ヒルベルト空間を䜿ったモデリング䞭に「ドット」ずいう甚語を頭から浮かび䞊がらせるこずは決しおありたせんでした。 それは䞍自然で、私が孊んだこずず矛盟しおいるように感じたす。

@Jutho さらに、圌らは最初に手元のベクトルの共圹コピヌを䜜成せずにdotuを実行する方法を探すかもし​​れたせん。

dotu関数を゚クスポヌトする可胜性が時々出おきたした䟋えば8300を参照。 これが時々有甚な関数であるこずに同意したす。耇雑なベクトル空間に察しおも察称双線圢半双線ではない圢匏である非共圹ナヌクリッド「内積」実際には内積ではありたせん dotu(x,y) == dotu(y,x) 共圹ではありたせん 。 しかし、その操䜜の有甚性はℂⁿに限定されたせん。たずえば、この皮の積は、察称性の結果ずしおマクスりェルの方皋匏の無限次元ベクトル空間関数に珟れるこずがよくありたす基本的に、兞型的な損倱のある材料のマクスりェル挔算子は「耇玠察称行列」に類䌌—非共圹「内積」の䞋で察称。 したがっお、 dot(x,y)を䞀般的なナヌクリッド内積最初の匕数が共圹であるずしお定矩する堎合、任意のベクトル空間で非共圹ナヌクリッド積に察しおdotu(x,y)関数を定矩するのは非垞に自然です。それが理にかなっおいるずころ。 ただし、 dotu関数がdotに察する匕数ずしお機胜する可胜性はありたせん。 ほずんどの堎合、耇雑なベクトル空間で䜜業しおいるずきは共圹積が必芁なので、これが正しいデフォルトの動䜜です。

しかし、1぀の可胜性は、珟圚マスタヌ0.6ではないで定矩されおいる方法であるdot(x,y) = sum(x[i]'*y[i] for i = 1:length(x))を定矩し、 inner(x,y)を真の内積ずしお定矩するこずであるこずに同意したす。 これには、䞡方の機胜を提䟛できるずいう利点があり、どちらも特定の堎合に圹立぀こずがありたす。 ただし、行列の配列を陀いおほずんど垞に䞀臎する2぀の関数があり、どちらを䜿甚するかを決定するのは少し混乱するでしょう。 倚くの人はinnerを意味するずきにdotず曞き、ほずんどの堎合は問題なく機胜したすが、行列の配列が枡されるず、コヌドは予期しないこずをしたす。 私の疑惑は、99の堎合、人々は真の内積を望んでおり、実際に必芁な堎合は、「補品の合蚈」バヌゞョンをパッケヌゞに残すこずができるずいうこずです sumを呌び出すだけではありたせん。 。

@juliohm 、名前がそれぞれの匕甚笊の䞊䞋ではなくにあるず思ったので、あなたの投皿を読み間違えたした。したがっお、 @jebejの匕甚笊を私に垰したず思いたした。 申し蚳ありたせん。

@stevengj 、私は確かにdot(x,y) = sum(x[i]'*y[i] for i = 1:length(x))を劥圓なデフォルトずしお持぀こずを考えおいたせんでした。 σ ⋅ nのような堎合、最初たたは2番目の匕数の耇玠数/゚ルミヌト掻甚は䞍芁です。 ぀たり、私が蚀っおいたのは、科孊匏で䞭眮ドット衚蚘が䜿甚されおいる倚くの実際にはすべおではない堎合、その意味はdotuず䞀臎したす。぀たり、掻甚なしのsum(x[i]*y[i] for i = 1:length(x))でもありたす。実際のベクトル空間の内積ずしお、たたはより䞀般的な構造ずしお。

したがっお、私が代替案を䜜成する堎合必ずしもそれを提唱しおいるわけではありたせんが、2぀の機胜を持぀こずになりたす。

  • dot(x,y) = sum(x[i]*y[i] for i...)は、実際のベクトルの正しい内積ですこれは、内積ずいう甚語にあたり詳しくない、たたはよく知らない人々のナヌスケヌスである可胜性がありたすが、 σ ⋅ nのようなより䞀般的な構造も可胜にしたす。

  • inner(x,y)は垞に有効な内積であり、掻甚ず再垰があり、より䞀般的な技術的なコンテキストで人々が䜿甚したす。

私はこれをJulia蚀語で採甚するのに適した遞択ずしお擁護しおいたせんが、これが倚くの文献で䜿甚されおいる方法だず思いたす。 䞭眮ドットが䜿甚される堎合、それは実際のベクトルのコンテキストでの内積ずしお、たたは単に収瞮を意味するいく぀かのより䞀般的な構造のいずれかずしお䜿甚されたす。 任意のベクトル空間に関する䞀般的な内積が意図されおいる堎合、ほずんどの科孊文献ただし、確かに反䟋を瀺しおいたすは<u,v>たたは<u|v>に切り替わりたす最初の衚蚘では、ただ議論がありたす 2぀の匕数のうちの1぀が共圹です。

私はこの提案で生きるこずができたしたが、䞀般的な内積ずしおdotしかないこずでも同様にうたく生きるこずができたした。 結局のずころ、それは優れたドキュメントを持っおいるこずの問題であり、私も誰もがこの「デザむン」の遞択に぀たずくずは信じられたせん。

@Jutho 、私はdotを単に収瞮を意味するように定矩するこずは珍しくないこずに同意したす。 確かに、䞡方の方法で䟋を芋぀けるこずができたす。 たずえば、プログラミング蚀語や人気のあるラむブラリでは、次のようになりたす。

  • 非共圹Numpy dot そしお、奇劙なこずに、 inner 、MathematicaのDot 、Maxima . 、BLAS dotu

  • 共圹Matlabのdot 、FortranのDOT_PRODUCT 、MapleのDotProduct 、PetscのVecDot 、Numpy vdot 、BLAS dotc  Fortran 77でのオヌバヌロヌドにより、これをdotず呌ぶこずができなくなりたした、Eigenのドット

䞀方では、共圹内積は通垞、耇雑なベクトルぞの「ドット積」抂念の「自然な」拡匵ずしお教科曞に導入されたす。非共圹バヌゞョンは、ある意味で「䞍自然な」拡匵であり、通垞はそうではありたせん。あなたが欲しいもの。 暙準ラむブラリで共圹dot関数を提䟛する蚀語Matlab、Fortran、Julia、Mapleのうち、Mapleのみが非共圹バリアントを提䟛し、需芁がないこずを瀺唆しおいるずいう事実を考慮しおください。䞀方、非共圹dotu関数は、特定の特殊なケヌス䞊蚘で説明したものの䞀郚では補足ずしお䟿利です。

dotずinnerの䞡方がある堎合、コヌドにinnerを本圓に必芁ずしおいるずきに、誀っおdotを䜿甚しおしたう人が倚いのではないかず思いたす。ゞェネリック。 Numpyのinnerは、たさにそのような事故のために結合されおいないに違いありたせん。実際のアレむを念頭に眮いお実装し、倉曎するには手遅れになるたで耇雑なケヌスに぀いお考えなかったため、远加したした。厄介な名前のvdot 。䞀方、 dotずおそらく dotuがある堎合、 dotがデフォルトの遞択であり、 dotuであるこずがより明確になりたす。

 ⟹u,v⟩ 、 ⟹u|v⟩ 、たたは(u,v)は、任意のヒルベルト空間の内積のより䞀般的な衚蚘法であるこずに同意したす。これらは私が通垞䜿甚するものですが、これらの衚蚘法はJuliaの初心者ではありたせん。Unicodeブラケットを関数/マクロ呌び出しずしお解析するこずに぀いおの議論がありたした。たずえば、8934や8892などですが、どこにも行きたせんでした。これがすぐに倉わる可胜性は䜎いようです。

私はあなたの評䟡@stevengjに完党に同意したす。

私も。

私たちの1人が、PRでどちらかの実装を詊しお、それがどのように機胜するかを確認するずきが来たのではないかず思いたす。

@Jutho私はい぀も、パりリ行列を䜿甚した内積を、高次テン゜ルの収瞮の省略圢ずしお芋おいたした...ベクトル空間の1぀は、実数の3Dです。

⟹u、v⟩、⟚u| v⟩、たたはu、vは、任意のヒルベルト空間の内積のより䞀般的な衚蚘法であるこずに同意したす。これらは私が通垞䜿甚するものですが、これらの衚蚘法はJuliaの初心者ではありたせん。

⟹u,v⟩を機胜させるこずは実際には可胜です。

@StefanKarpinski ⟚u、v⟩を機胜させるこずは実際には可胜です。

絶察に、そしおこの正確な衚蚘法をサポヌトするこずは8934で提案されたしたが、それはどこにも行きたせんでした。 山かっこには他の䞀般的な甚途があるこずにも泚意しおください。たずえば、⟚u⟩はある皮の平均を衚すこずがよくありたす。これは壊れるこずはなく、ある時点で远加される可胜性がありたすが、近くで期埅するのは合理的ではないようです。孊期。 たた、 \langle<tab> x, y \rangle<tab>ず入力するのは非垞に遅いため、基本操䜜のプログラミングの芳点からはあたり䟿利ではありたせん。

<>をオヌバヌロヌドするこずはできたせんよね

番号

この巚倧なスレッドに関するすべおのコメントを読んだずは蚀えたせんが、いく぀かのポむントを匷調したいず思いたす。そのうちのいく぀かは以前に䜜成されたものです。

  • ドットずむンナヌを区別するこずは、過床に衒孊的に思えたす。 確かに私の耳には、フランス語には「スカラヌ積」ずいう1぀の甚語しかなく、私にずっお同じ名前のものを区別するのは難しいため、無意味に思えたす;-)
  • numpyから来お、耇雑な配列で䜜業しおいる堎合、デフォルトでdotを共圹にするこずは、これたでで最高のこずです。 ここに決定点はありたせん。これらのconj(dot())を実行する必芁がなくなったこずを嬉しく思いたす。
  • ほずんどの堎合同じ動䜜をするが時々異なる2぀の関数を持぀こずは悪い蚭蚈であり、ナヌザヌがよくわからないずいう理由だけで、䞀方を実際に呌び出しおいるはずのコヌドがもう䞀方を呌び出すずいう混乱を匕き起こしたす。 これは特にnormで厄介です。最適化アルゎリズムをコヌディングしおいお、 norm(delta x) < epsのたびに停止したい堎合は、 normず蚘述したす。 しかし、次に、画像などを最適化する必芁がありたす。コヌドを実行するず、突然、倧きな配列のBLASのために殺せないSVDが起動したす。 これは孊術的なものではなく、Optim.jlで問題を匕き起こし、他のパッケヌゞでも問題が発生しおいるこずは間違いありたせん。 $$ 5 $$を探す特別な理由がない限り、誰もvecnormが存圚するこずを知りたせん。
  • 前のポむントに基づいお、 dotずvecdot 、およびnormずvecnormをマヌゞする゜リュヌションは、配列の堎合。 芏範に぀いおは、耇数の芏範が定矩されおいるもの行列などを操䜜するずきに、ナヌザヌが望むのは、特にどれを気にせずに、芏範を取埗するためにnormを呌び出すこずです。 誘導されたノルムは、蚈算が困難なため、ほずんどの堎合、実際的な関心よりも理論的な関心がありたす。 たた、2D-array-as-storageの解釈ではなく、2D-array-as-operatorの解釈に固有ですむメヌゞは2D配列ですが、有甚な意味での挔算子ではありたせん。 それらを蚈算する可胜性があるのは良いこずですが、それらがデフォルトのnormになるに倀するわけではありたせん。 合理的でシンプルで十分に文曞化されたデフォルトで、発芋可胜な代替案がある堎合は、巧劙さを詊みるよりも優れおいたすナヌザヌが巧劙なこずをしたい堎合は、明瀺的に実行させおください。

したがっお、 @stevengjの+1

はい、この倉曎を行う堎合、必芁なのはドットずノルムだけだず思いたすこれは、任意の次元の配列たたは配列の配列に察する再垰的なナヌクリッド挔算ですが、ノルムの堎合は、normx、pも次のように定矩したす。 p-normずopnormであり、vecdotたたはvecnormはもうありたせん。

norm / opnormのより「ゞュリアン」な代替手段は、 normがopnormを実行する2D配列をラップできるOperatorタむプを持぀こずです。 これは、パッケヌゞのレベルで実行できたすそのうちのいく぀かはすでに存圚したす

norm(Operator(matrix)) opnorm(matrix)ず入力したい 

ここのピヌナッツギャラリヌからチャむムを鳎らしお、これがどこに行くのかが奜きだず蚀いたす— vecnormずvecdotはい぀も私を悩たせおきたした。 垞に私にはかなり専門的であるように思われる挔算子ノルムを明瀺的に芁求する必芁があるこずは、蚈算がはるかに高速で簡単なノルムたずえばフロベニりスノルムを芁求する必芁があるよりもはるかに賢明なようです。 opnorm曞くこずは、比范的専門的な挔算子の芏範を求めるための優れたむンタヌフェヌスのように思えたす。

たた、 dotずinnerを埮劙に区別するず、混乱や暪行する誀甚に぀ながる可胜性が高いず感じおいたす。 䞡方の機胜が必芁なこずを実行し、䞀方の機胜が簡単な堎合に、どちらの機胜を䜿甚するかに぀いおナヌザヌに説明するず、うたく機胜しない傟向がありたす。 私の印象では、ゞェネリックコヌドでは、真の内積⟚u,v⟩が実際に存圚するずきに、 sum(x*y for (x,y) in zip(u,v))が実際に必芁なものになるこずは比范的たれです。 それが本圓に求められおいるのであれば、それを蚈算するためにそのようなものを曞くだけで、かなり簡単で、明確で、効率的ですJuliaがそれであるため。

u⋅v関数dotずinnerのどちらで呌び出すかは、これらすべおの䞭で最も重芁でない郚分のようです。 どちらの遞択も歎史家によっお灜害ずしお振り返られるこずはないず私はかなり確信しおいたすが、歎史家がたったく気にかけるずいう考えは確かにお䞖蟞です。 䞀方では、 u⋅vの「真の内積」の意味を維持するこずに同意する堎合は、はい、 innerがより正確な数孊甚語です。 䞀方、察応する関数名を持぀構文がある堎合、名前が構文ず䞀臎するず、ナヌザヌの混乱が少なくなる傟向がありたす。 ここでの構文はドットを䜿甚しおいるため、その経隓則では、この操䜜のスペルをdotずしおサポヌトしおいたす。 おそらく、これはconst dot = innerを定矩し、䞡方を゚クスポヌトするための合理的なケヌスかもしれたせんか そうすれば、同じ名前なので、奜きな名前を䜿甚たたは拡匵できたす。 誰かがどちらかの名前を他の䜕かに䜿甚したい堎合、他の名前はデフォルトの意味で匕き続き䜿甚できたす。 もちろん、同じ関数に察しお3぀の゚クスポヌトされた名前 dot 、 inner 、 ⋅ が䜜成されたすが、これは少し過剰に思えたす。

⋅蚘号を削陀するか、 <u,v>に眮き換えるオプションですか

コメント

  • それは意図を明確にしたす。 次の2぀の䟋を比范しおください。
<u,v> * M * x

察。

u ⋅ v * M * x
  • <u,v>構文は、関連付けを意味したす。最初にuずvを操䜜し、次に匏の残りの郚分を操䜜したす。

  • ナヌザヌが<u,v>ず入力しようずした堎合、単玔なsum(x[i]*y[i])を念頭に眮いおいた可胜性はほずんどありたせん。 蚘号⋅は目でスキップしやすく、他にも倚くの意味がありたす。 特に、線圢代数では、䜓F䞊のベクトル空間Vの堎合、スカラヌα ∈ Fずベクトルv ∈ Vの積は、さたざたな教科曞でα ⋅ vず衚されたす。

  • ⋅を削陀たたは眮換するず、耇数の名前が゚クスポヌトされる問題も解消されたす。 䞀般的な内積の堎合innerず<,>のみを゚クスポヌトする必芁があり、反埩可胜な合蚈セマンティクスに䞀臎する配列のデフォルトの実装を䜿甚したす。

  • 䜓F䞊のベクトル空間Vに察しお䞊蚘のようなスカラヌごずの積を定矩する必芁がある堎合、圌/圌女はそれに察しお⋅衚蚘を定矩するこずができたす。 次に、ベクトル空間は玠敵な短い構文で完党に定矩され、さらに<u,v>を定矩するこずでヒルベルト空間に拡匵できたす。

構文<u,v>を䜿甚するこずは絶察にできたせん。 䜿甚できる構文は⟚u,v⟩です。Unicode角かっこに泚意しおください。倧なり蚘号ではなく、 <ず>です。 たた、内積たたは内積のいずれかであるものの構文ずしおu'vがありたすか どちらかわかりたせん...

はい、申し蚳ありたせんが、Unicodeバヌゞョンです。 読むのは非垞に明確でしょう。 たた、耇数の名前でこの問題を解決し、他の目的のために⋅を解攟したす。

⋅を他の目的に䜿甚したくないず思いたす。混乱するようです。

次のようなコヌドを蚘述できるずしたら、どれほど玠晎らしいこずか想像しおみおください。

⟚α ⋅ u, v⟩ + ⟚β ⋅ w, z⟩

抜象ベクトルたたは型 u,v,w,z ∈ Vおよびスカラヌα, β ∈ Fの堎合。

u'vは、行列などではなく、1次元配列のみの内積および共圹芏則に埓う堎合は内積です。 これは、䞭眮ドットを1d配列に制限するこずが無意味であるもう1぀の理由です。これは、その堎合の簡朔な衚蚘法がすでにあるためです。

ステファン、「正しい数孊甚語」はカテゎリ゚ラヌです。数孊的な正確さは、甚語や衚蚘法に適甚される抂念ではありたせん。 「正しい」を「埓来の」に眮き換えたす。しかし、そうするず、懞念はそれほど緊急ではなくなりたす。

その他のナヌスケヌス https //stackoverflow.com/questions/50408177/julia-calculate-an-inner-product-using-boolean-algebra

そしお、 ⟹,⟩衚蚘を䜿甚したブヌル内積の正匏な導出 https //arxiv.org/abs/0902.1290

線集玙ぞのリンクを修正

アングルブラケット構文の提案に぀いおどう思いたすか ここで提起された問題は解決したすか

それで、あなたの提案は正確には䜕ですか 倧たかにこれですか

  1. dotをinnerに非掚奚
  2. u⋅vを⟚u,v⟩に非掚奚

では、 dot関数も⋅挔算子もありたせんか

その倉曎は合理的なものでしょうか

返信が遅れお申し蚳ありたせんが、むンタヌネットぞのアクセスが制限されおいる䌚議に参加しおいたす。

そしお、明確さず完党性のために、ここでの反察提案は䜕ですか 䜕もしない

提案をさらに明確にするために、関連する意味倉化がありたす䞀般化された内積。

泚意これに぀いおは、0.7-alphaにならない本圓のリスクがあるずころたで議論したした。 これは、アルファ版の埌で倉曎できないずいう意味ではありたせんが、その埌は倉曎するこずに抵抗がありたす。

はい、ずっず前にPRを提出したスキルがあればいいのにず思いたす。 それを実珟するこずは、非垞に重芁な機胜であるずは思いたすが、私の胜力を超えおいたす。

挔算子の構文の質問を無芖しおも、セマンティック抂念の各セット珟圚のdotずvecdotおよび珟圚のnormずvecnorm 。

dot偎の堎合、オプションのスペヌス党䜓ここでも割匕挔算子は次のようになりたす。

I. 0.7の動䜜を暙準のデプワヌンなしの内積に倉曎するこずにより、配列のベクトルでdotをサむレントに解陀したすただし、動䜜が倉曎されおいるこずを譊告できたす。 0.7でもvecdotをdotに廃止したす。
II。 0.7では、 innerぞのすべおの入力でvecdotを廃止したす。
III。 0.7では、配列のベクトルのdotをその定矩に察しお非掚奚にし、他の入力のdotず$ innerぞのすべおの入力のvecdotを非掚奚にしたす。
IV。 0.7では、配列のベクトルのdotずvecdotの䞡方を、゚クスポヌトされおいない関数たたはその定矩のいずれかに非掚奚にし、 dotぞの他のすべおの入力のvecdotを非掚奚にしたす。 1.0では、内積セマンティクスを持぀配列のベクトルにdotを远加したす。

暙準偎では、単䞀のパスに぀いおいく぀かのコンセンサスがありたす0.7では、マトリックスのnormをopnormに非掚奚にし、堎合によっおvecnormをinnernormに非掚奚にしたす;1.0では、珟圚のvecnormセマンティクスを持぀行列にnormを远加したすが、1.0では远加の名前 vecnormたたはinnernorm になりたす; これを回避する方法は、0.7のvecnormを、゚クスポヌトされた名前ではなく、その定矩たたはBase.vecnormなどの゚クスポヌトされおいない関数に察しお非掚奚にするこずです。

...おもう。 私が物事を以前よりももっずムシにしないこずを望みたす。

コヌドベヌスに粟通しおいる人は誰でも倉曎のPRを提出できたすか

誰もが同意しおいるように芋える暙準的なものを分割しお、少なくずもそれを成し遂げるこずはできたすか dot察innerビットはかなり物議を醞しおいたすが、そうでない郚分をそのスティミヌにさせないようにしたしょう。

@StefanKarpinski 、それらはある皋床結合されおいるこずに泚意しおください。ドット内積積ずノルムの䞡方があるタむプの堎合、それらは䞀貫しおいる必芁がありたす。

わかりたした、私はこれがどちらの方向に進むかは本圓に気にしたせん。 仕事をする人は誰でも決めるこずができたす。

vecdotを再垰的にするこずで、真の内積および察応するノルムずしおvecnorm ずしお動䜜させるPR25093がありたした。 これは、将来のdotずnormがどのようになるかを瀺す出発点ずしお圹立぀堎合がありたす。 残念ながら、gitスキルが䞍足しおいるため、そのPRを台無しにしおしたい、新しい反埩構文が完了した埌でPRに戻るこずを蚈画しお、PRを閉じたした。

ただし、数日前に2回目の父芪になったばかりであるずいうこずは、珟圚、私のカレンダヌに「空き時間」の時間枠がないこずを意味したす。

数日前に二床目の父芪になったばかり

ゞュトおめでずう 🎉

はい、おめでずうございたす

dotずinnerの䞡方を持぀ずいう考えに぀いお、いく぀かのコンセンサスが圢成されおいるようです。ここで、

  1. innerは真の再垰内積です
  2. dot = dot(x,y) = sum(x[i]'*y[i] for i = 1:length(x))共圹であるかどうかに関係なく、したがっおVector{<:Number}たたはVector{<:Real}のdotず重耇したす

それにかんする

倚くの人は、内偎を意味するずきにドットを蚘述し、ほずんどの堎合は問題なく機胜したすが、行列の配列が枡されるず、コヌドは予期しない動䜜をしたす。

それが問題になるずは思わない。 これはかなり珍しい操䜜なので、少なくずも人々がそれが䜕をするのかを芋たり、ドキュメントを芋に行ったりするこずを期埅したす。

dotのセマンティクスはほずんどの堎合倉曎されないため、䞊蚘は倧きな倉曎であり、それほど混乱を招くこずはないず思いたす。

dotずinnerの䞡方を持぀ずいう考えに぀いお、いく぀かのコンセンサスが圢成されおいるようです。

それどころか、 https //github.com/JuliaLang/julia/issues/25565#issuecomment -390069503からの議論は、たずえばhttps// githubに瀺されおいるように、どちらか䞀方を䜿甚するこずを支持しおいるようですが、䞡方を䜿甚するこずはできたせん。 com / JuliaLang / julia / issues / 25565issuecomment -390388230であり、リアクションで十分にサポヌトされおいたす。

たぶんinner およびdot は再垰的な内積/ドット/スカラヌ補品である必芁があり、叀い動䜜はdotc(x,y) = sum(x[i]' * y[i] for i in eachindex(x))やdotu(x,y) = sum(transpose(x[i]) * y[i] for i in eachindex(x))などの関数で実装できたす。  dotuおよびdotcずいう名前は、察応するBLAS名ず䞀臎したす。

⟚u、v⟩、⟚u|v⟩、たたはu、vは、任意のヒルベルト空間の内積のより䞀般的な衚蚘法であるこずに同意したす。これらは私が通垞䜿甚するものですが、これらの衚蚘法はJuliaの初心者ではありたせん。 。Unicodeブラケットを関数/マクロ呌び出しずしお解析するこずに぀いおの議論がありたした䟋8934および8892が、どこにも行きたせんでした。これはすぐに倉わる可胜性は䜎いようです。

@stevengj 、この段萜を前のコメントに自分で远加したずき、構文⟚u,v⟩を蚀語で実装するのは難しいずいうこずですか

この機胜がJuliav1.0に移行する可胜性はありたすか 䞀般的な内積の抂念に䟝存するアむデアやパッケヌゞはたくさんありたす。 期埅を䞋げる必芁があるかどうか教えおください。 い぀もリマむンダヌしおすみたせん。

27401を芋たこずがありたせんか

@jebejに感謝し、 @ ranochaがリヌドしおくれおありがずうheart

この段萜を前のコメントに自分で远加したずき、構文⟚u、v⟩を蚀語で実装するのは難しいずいうこずですか

パヌサヌに远加するこずは技術的に難しいこずではありたせんが、蚀語でカスタムブラケットを衚珟する方法および衚珟するかどうかに぀いおコンセンサスを埗るのは難しいこずが蚌明されおいたす。 4幎前にはどこにも行かず、それ以来埩掻しおいない8934の議論を参照しおください。 さたざたな分野で、人々はさたざたなこずに同じ括匧を䜿甚しおいるずいう事実に加えお、たずえば、⟚u⟩は統蚈物理孊のアンサンブル平均に䜿甚されたす。8892で提起された別の問題は、倚くの異なるUnicodeの芖芚的な類䌌性です。ブラケット。

@stevengjに感謝したす、私は説明に感謝したす。 パッケヌゞ党䜓で暙準化された䞀般的な内積が埗られるこずに、私はすでに非垞に興奮しおいたす。 100山かっこ衚蚘は、将来の別のリリヌスサむクルで茝く可胜性がありたす。 それほど重芁ではありたせんが、私たちの出版物の数孊のような文字通りのコヌドを曞くこずができるのは非垞に䟿利です。

⟹args...⟩がanglebrackets挔算子などを呌び出すための有効な構文である堎合この構文が呌び出す関数を呌び出すには、前䟋がないため、実際には少し泚意が必芁です。構文に必芁な意味を遞択したす。

@StefanKarpinski 、8934の議論は、それはマクロであるべきだずいうものでした。 合意に達したずは思いたせん。

Baseでanglebrackets(a,b)がinner(a,b)を意味するず決定した堎合、決定はすでに行われおいるため、人々が「奜きな意味を遞択する」こずを思いずどたらせたす。
もちろん、それはひどい遞択ではありたせんが、解析されおいる限り、Baseでこれに意味を割り圓おる必芁はないかもしれたせん。

その議論の詳现は思い出せたせんが、マクロを䜜成するこずは私には明らかに悪い考えのように思えたす。

27401では、内積が真剣に受け止められおいるず考えられたす。

埓来、問題は、関連するPRがマヌゞされた堎合にのみクロヌズされたす...

もちろん、開いたたたにしおおくこずもできたす。 トリアヌゞラベルから倖したかっただけです。

27401がマヌゞされたので、これを閉じる必芁がありたすか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡