Jazyk pro matematické výpočty

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #45 kdy: 20. 09. 2015, 21:01:21 »
Ber ten program v Javě nebo v C++ jako podrobnou analýzu problému. A pokud se ukáže, že se to v tom jazyce nedá rozběhnout (a není to tím, že to neumíš ty) a nedá se posílit HW, tak se může řešit v jaké verzi Fortranu to psát.

No, aby se s tou Javou vesel do pameti. Fortran kdysi jel na strojich s 256 MB pameti (kurva, to tehdy bylo ale pameti!) a o vykonu silne zastaraleho PC a pritom se v tom delaly dost narocne veci.

V případě HMM se moc nové paměti nealokuje, většina se počítá "na místě". A když bude 4x více paměti k dispozici než se použije, tak to GC témeř nezpomalí.


JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #46 kdy: 20. 09. 2015, 21:44:31 »
Výkon se dnes už tolik neřeší. Spíš vhodnost jazyka k danému účelu. Tedy tak, aby se ta aplikace dobře psala, dobře udržovala a schovalo se do ní co nejméně chyb. Šetří se tedy hlavně čas programátora.

Vsak je to vzdycky videt, kdyz vyjdou nove Widle nebo nova verze nejake aplikace. Casu programatora se snad usetri, zato useri asi nevedi, co s casem.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #47 kdy: 20. 09. 2015, 22:03:02 »
Výkon se dnes už tolik neřeší. Spíš vhodnost jazyka k danému účelu. Tedy tak, aby se ta aplikace dobře psala, dobře udržovala a schovalo se do ní co nejméně chyb. Šetří se tedy hlavně čas programátora.

Vsak je to vzdycky videt, kdyz vyjdou nove Widle nebo nova verze nejake aplikace. Casu programatora se snad usetri, zato useri asi nevedi, co s casem.

Záleží na tom, jak to který programátor pojme. Než abych studoval 50 stránkovou dokumentaci k nějakému 10k řádkovému frameworku, raději ten ušetřený čas využiji k tomu, abych si napsal vlastní řešení na 50-100 řádcích. Výsledkem je program, který běží podle mých představ a běží rychle. A ani moc nezáleží na použitém jazyku - zda je to v PHP, Pythonu či v C. Vždy je to rychlejší než cizí framework.

Re:Jazyk pro matematické výpočty
« Odpověď #48 kdy: 20. 09. 2015, 23:44:28 »
Zkus si ještě jednou přečíst to, co jsem napsal. Makra do Lispu prostě patří, bez nich by Lisp ani nebyl Lispem. Navíc je to naprosto odlišná kategorie, než je třeba #define v céčku.

Pokud by tedy Python nějak rozumně implementoval lispová makra, nebyl bych proti.
Prokrýlepána, bavíme se o tom, že pomocí maker se dá zabezpečit mj. nevyhodnocení argumentů fce předem, což se zrovna v matematice perfektně hodí (nejenom na to používání názvů sloupců, ale třeba i pro předávání formulí s neznámými apod.). Co sem pletete cpp nebo dokonce m4?!

Ivan Nový

Re:Jazyk pro matematické výpočty
« Odpověď #49 kdy: 21. 09. 2015, 04:47:28 »
Fortran je ovsem jazyk znacne staricky, nekdy z doby, kdy mel Zizka jeste obe oci. Jestlipak se od dob sveho vzniku aspon trochu zmodernizoval?
...
Ano dost sa zmodernizoval.
Pocas VS v 90 rokoch minuleho storocia sme na numerike pouzivali F77. Teraz je bezny standard F90, 95 a je to uz o dost modernejsie ako predtym. K dispozicii su free kompilatory gfortran a g95.
Ale má, ve formě _metaclass_


Re:Jazyk pro matematické výpočty
« Odpověď #50 kdy: 21. 09. 2015, 06:17:04 »
Ale má, ve formě _metaclass_
Jestli to měla být reakce na to, že Python nemá makra, tak metaclass není makrosystém. Metaclass je metaclass.

https://en.wikipedia.org/wiki/Metaclass
https://en.wikipedia.org/wiki/Macro_(computer_science)#Syntactic_macros

technomaniak

Re:Jazyk pro matematické výpočty
« Odpověď #51 kdy: 21. 09. 2015, 07:12:26 »
Nevíme na jak dlouhou cestu se chce někdo vydat autem, ale budeme ho zrazovat, že s normálním autem s 50litrovou nádrží by tam taky nemusel dojet, že jiná specializovaná expediční auta si vezou třeba 400 litrů paliva.
A pak se ukáže, že ten člověk třeba chtěl buď dojet autem do Antarktidy, nebo chtěl dojet jenom 30 km do okresního města...

Uklidním tě, nejsi sám kdo si všiml, že to zadání je nekorektní, tak příšerně obecné, že jakákoliv skutečná rada, která by mu pomohla je z oblasti sci-fi(odhadu).

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #52 kdy: 21. 09. 2015, 12:20:35 »
Zkus si ještě jednou přečíst to, co jsem napsal. Makra do Lispu prostě patří, bez nich by Lisp ani nebyl Lispem. Navíc je to naprosto odlišná kategorie, než je třeba #define v céčku.

Pokud by tedy Python nějak rozumně implementoval lispová makra, nebyl bych proti.
Prokrýlepána, bavíme se o tom, že pomocí maker se dá zabezpečit mj. nevyhodnocení argumentů fce předem, což se zrovna v matematice perfektně hodí (nejenom na to používání názvů sloupců, ale třeba i pro předávání formulí s neznámými apod.). Co sem pletete cpp nebo dokonce m4?!

Jo, výrazy s volnými proměnnými se hodí. Ještě tu nebyl zmíněn Swift, v něm to jde stylem "Var.x ** Var.y", kde Var je "struct Var : Expression". Pak mi kombinace s matematickými operátory vytvoří AST, jejž lze následně vyhodnotit, derivovat apod.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #53 kdy: 23. 09. 2015, 23:29:29 »

iwtu

Re:Jazyk pro matematické výpočty
« Odpověď #54 kdy: 25. 09. 2015, 01:39:24 »
C# pod Linuxom bez problemov. .NET uz je open source.

Matematicke vypocty, velmi zavisi, ze ake..Je skutocne mozne, ze prave pre tie Vase bude najlepsi jazyk Fotran.
Ale inac takmer vsetko by sa malo dat zvladnut v Octave/Matlab alebo R.

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #55 kdy: 25. 09. 2015, 02:03:33 »
C# pod Linuxom bez problemov. .NET uz je open source.

Už jsem psal, že C# je příliš univerzální jazyk a pro vědecké výpočty se tedy nehodí. Vždyť ani nemá pole od jedné, ale od nuly. C# je spíš jazykem pro programátory, vědcům víc vyhovuje Fortran. Mimo jiné i proto, že je lépe vybaven pro práci s vektorovými procesory, pro které jsou cykly z C# velkou překážkou.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jazyk pro matematické výpočty
« Odpověď #56 kdy: 25. 09. 2015, 08:23:40 »
C# pod Linuxom bez problemov. .NET uz je open source.

Matematicke vypocty, velmi zavisi, ze ake..Je skutocne mozne, ze prave pre tie Vase bude najlepsi jazyk Fotran.
Ale inac takmer vsetko by sa malo dat zvladnut v Octave/Matlab alebo R.
Vše se dá zvládnout i v C#, Javě nebo C++. Záleží na tom, co člověk umí a co mu poběží na hardwaru. Špatnou volbou by byl třeba Prolog :) jinak to je fuk. Navíc algoritmy pro HMM jsou složité, takže to chce stejně knihovnu. SAT dtto.

Radek Miček

Re:Jazyk pro matematické výpočty
« Odpověď #57 kdy: 25. 09. 2015, 09:33:16 »
C# pod Linuxom bez problemov. .NET uz je open source.
Vždyť ani nemá pole od jedné, ale od nuly.

Má. Například takto vytvoříte pole od 1 do 5: System.Array.CreateInstance(typeof(int), new[] { 5 }, new[] { 1 })

Kit

Re:Jazyk pro matematické výpočty
« Odpověď #58 kdy: 25. 09. 2015, 10:23:54 »
Má. Například takto vytvoříte pole od 1 do 5: System.Array.CreateInstance(typeof(int), new[] { 5 }, new[] { 1 })

No fuj. Vytvoření pole s indexy 1..5:
Kód: [Vybrat]
       REAL pole(5)
Vytvoření pole s indexy 5..20:
Kód: [Vybrat]
       REAL pole(5:20)
Vytvoření třírozměrného komplexního pole o 1000 prvcích:
Kód: [Vybrat]
       COMPLEX pole(5, 20, 0:9)
Násobení pole konstantou:
Kód: [Vybrat]
       pole = pole * 42
Jak s tímhle chce nějaký C# soupeřit?

Radek Miček

Re:Jazyk pro matematické výpočty
« Odpověď #59 kdy: 25. 09. 2015, 10:39:42 »
Má. Například takto vytvoříte pole od 1 do 5: System.Array.CreateInstance(typeof(int), new[] { 5 }, new[] { 1 })
Jak s tímhle chce nějaký C# soupeřit?

Netvrdím, že s tím má C# soupeřit, jen říkám, že tam jde indexovat pole i od 1.