Qualcuno sa perché qualcosa come libreria cj per numeri complessi non è mai stato completato e integrato in Java principale?
Questo mi sembra un gioco da ragazzi ... Mi rendo conto che le gawds di Java non vogliono trasformare Java in C ++ ma questa è una cosa che C ++ gestisce splendidamente e l'implementazione di questo ragazzo (scritta 17 anni fa!) gestisce in modo eccellente ma è ormai irrimediabilmente obsoleto per essere di uso pratico.
Sì. Aggiungi anche quaternioni e octonioni. Ma questo è tutto. Non sto suggerendo una scatola di Pandora. I numeri reali, complessi, quaternionici e octonionici sono le uniche algebre a divisione normale. Si potrebbe controbattere tuttavia, rimanendo nel regno di * essere sempre commutativi per quanto riguarda l'ordine delle operazioni. Torna indietro e leggi l'articolo a cui mi sono collegato nell'OP. Generare milioni di oggetti temporanei per spammare il GC è dispendioso e rende Java appropriato per alcune attività che potrebbero essere facilmente rese idonee. La cosa che distingue un primitivo è che è un'unità, e non un puntatore a un mucchio. Se vai all'estremo OO, potresti anche unirti al campo che dice che anche le doppie primitive dovrebbero essere eliminate. Sì, quello che sto suggerendo equivale a un operatore integrato che compila codici byte completi standard e mappe di una coppia di doppi. Vedere l'implementazione cj e README I collegati. Un sovraccarico dell'operatore in piena regola sarebbe un disastro, ma questo è facilmente fattibile.
Non sto suggerendo solo l'estensione della lingua a tipi complessi.
Per le mie idee, vedi l'articolo che ho scritto riassumendo questo libro su Clifford Algebras
Per esempio, i tipi di dati complessi sono fondamentali per l'informatica quantistica .. ma anche, il commento qui sotto sui tipi definiti dall'utente, benché accurato, non si presta a unire insieme un codice complesso ad alte prestazioni (no pun intended) che può essere filato al volo dal jvm o da qualsiasi hardware, quantico, classico o altro ... già pensando a questo qui .. e no, non è una proliferazione di incasinare "java purezza" ma è in realtà il rigoroso, scientifico ecc. es BUONO, modo di fare le cose ... apre possibilità a chi può usarle.
Ad esempio, questi costrutti (no non l'ho appena estratto dal nulla, ma quasi così ..) suonano come la soluzione perfetta per alcune applicazioni alla teoria del compilatore e ai torni e input / output dell'utente (modellati come osservabili come output e processi stocastici come input).
1.2.3. Exact Sequences, Centers, and Centralizers. A group G is simple if it has no normal subgroups other than {e} and G. The group with one element is denoted by 1 if the composition law is multiplication, or 0 if the composition law is addition. Suppose that a sequence of groups {G0 = 1, G1, , Gk, Gk+1 = 1} is given and that θj: Gj → Gj+1 is a morphism for ...then the diagram...is an exact sequence if θj−1(Gj−1) is the kernel of θj∀1 6 j 6 k. When k = 3 the sequence is a short exact sequence. }