abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 22:00 | Komunita

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil (podcast) detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 64 tisíc vývojářů. Jejich nejmilovanější platformou je linuxový desktop. Ten je také druhou nejpoužívanější platformou vývojářů.

Ladislav Hagara | Komentářů: 1
24.3. 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 19
24.3. 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 44
23.3. 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 6
23.3. 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
23.3. 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
23.3. 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 30
23.3. 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
23.3. 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
23.3. 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (71%)
 (3%)
 (10%)
Celkem 937 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: Ukazatele v C, pole doublu

    25.12.2010 21:56 Preston Pigglesworth
    Ukazatele v C, pole doublu
    Přečteno: 353×
    Přílohy:
    Dobry den, nevim si rady z nasledujicim problemem v C. Z knihovny lapack mam funkci pro reseni soustavy linearnich rovnic _dgesv, volam ji presne podle prikladu z http://software.intel.com/sites/products/documentation/hpc/mkl/lapack/mkl_lapack_examples/dgesv_ex.c.htm

    Napsal jsem mensi program na jeji odzkouseni, viz priloha lapack2.c -- funguje OK

    Kdyz ji ale pouzivam tam kde ji potrebuju, tak jsou vysledky pokazde spatne, krome prvniho prvku. Napada me chyba v ukazatelich, ale podle clanku, co jsem procital tady i jinde, by to melo byt v poradku.Zkousel jsem i zapisovat do souboru jednotlive sekvence vypoctu.. vsechno je v poradku dokud nedojde na _dgesv. Ta sice spravne zapise vysledk do vstupniho pole B, ale s naprosto spatnymi cisly! Zkopiroval jsem obsah souboru B.txt a S.txt do zkouseciho programu a obdrzel jsem spravny vysledek.[overeny GNU/octave]

    Muzete mi prosim vysvetlit, jaky je z pohledu te funkce rozdil v tom jestli ji dam odkaz pole, pevne dane velikosti s na pevno naplnenymi cisly, nebo odkaz dynamicky alokovane pole?


    Řešení dotazu:


    Odpovědi

    25.12.2010 22:33 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Nezkoumal jsem to nijak podrobně, ale problém by mohl být spíš v těch ostatních parametrech, které nejsou pointery na double. V jedné ukázce totiž u všech předáváte pointery na int, zatímco v druhé pointery na long.
    25.12.2010 22:56 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    no, kdyz uz nejsou srozumitelne nazvy promennych, tak bys aspon ten kod mohl okomentovat. aspon nejak zhruba, abychom vedeli, co se kde deje. A velmi prakticke by bylo napsat, co je ktera promenna (vstupni / vystupni data, ridici promenne atd.).
    25.12.2010 23:46 Preston Pigglesworth
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    dgesv je subroutina na reseni soustavy rovnic A*X=b , pritom pri volani dgesv( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info ) je A predstavovano pomoci pole a. b je na VSTUPU predstavovano pomoci pole b. Na VYSTUPU se reseni X zapisuje do pole b! [Myslim, ze takovy komentar tam nekdeje]. n je pocet radku a sloupcu ctvercove matice A. nrhs=1 - pocet pravych stran ,lda=ldb=n ipiv jsou koeficienty z LU rozkladu, info je navratova hodnota 0= spravne ukonceni
    25.12.2010 22:58 luky
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Po letmom pohlade na oba programy som si vsimol jeden rozdiel vo funkciach LVP_solveGE() (zo suboru LVP_solver1.c) a funkciou LVP_solveG() (zo suboru lapack2.c). V jednom su lokalne premenne typu long int a v druhom int. Mozno to bude v tom.
    25.12.2010 23:35 Preston Pigglesworth
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Příloha:
    Dekuji za reakce, omlouvam se, ze sem vas zmatl tema ukazkama, zkousel jsem, jestli nemuze byt problem v tom, ze fortranovsky integer odpovida Cckovskemu long int.. V tomto problem neni, je to osetreno pres lapacke.h

    Funkce dgesv( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info ) da spravny vysledek pokazde, kdyz jsou pole a a b zavedeny jako double a[121]={...}; double b[11]={...};

    Kdyz se ale snazim ty pole zavest dynamicky, tak to pokazde vypocita uplne nesmysly

    Zjednodusil jsem ukazku,jak to jen slo.. kdyz nahradim volani LVP_solveGE(n,S,B); za LVP_solveGE(n,as,bs); tak se dostavi spravny vysledek.

    P.S.Omlouvam se, ze to vypada tak neprehledne, ale to je proste vypocet..Resp. to je neco, co "proste musi byt" v C, i kdyz je to v C zbytecne, spis az nevhodne

    26.12.2010 00:52 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Funkce dgesv( &n, &nrhs, a, &lda, ipiv, b, &ldb, &info ) da spravny vysledek pokazde, kdyz jsou pole a a b zavedeny jako double a[121]={...}; double b[11]={...}; Kdyz se ale snazim ty pole zavest dynamicky, tak to pokazde vypocita uplne nesmysly
    To bude ten problem, protoze je rozdil mezi dynamicky a staticky alokovanym polem. Funkce totiz ocekava staticke pole, ktere by melo byt alokovane jako souvisly blok v pameti, zatimco dynamicky alokovane pole velikosti [n][m] je n poli velikosti m ruzne po pameti. Takze by asi bylo vhnodne ty matice definovat jako jednorozmerne pole a program prepsat.
    26.12.2010 01:05 Dr. Eddy | skóre: 9 | blog: glog | České Budějovice
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    jo, pardon, blbe koukam a pak blbe kecam... jsem uz unaveny...
    26.12.2010 10:54 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu

    Dost by pomohlo, kdyby ta ukázka šla přeložit bez spousty souborů, které vy máte, ale my se o jejich obsahu můžeme jen dohadovat. Pro začátek např. zkuste alokovat dynamicky pole se stejným obsahem jako mají as a bs a zavolat funkci na ně. Pokud bude výsledek stejný jako u staticky alokovaného (což je více než pravděpodobné), problém je jinde, než kde se ho snažíte hledat.

    Ještě mne napadá: nikde nekontrolujete návratové hodnoty malloc(), nemůže být problém v tom, že selže alokace? Jak velká je ta vaše matice?

    26.12.2010 11:46 Preston Pigglesworth
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Příloha:
    Upravil jsem solver1.c tak aby ho bylo mozne spustit bez tech veci okolo, kompiluju to pomoci gcc LVP_solver1.c lapack_LINUX.a lapacke.a blas_LINUX.a tmglib_LINUX.a libgfortran.so.3.0.0 Dal bych jsem i ty knihovny, ale maji dohromady 30MB.

    Pro začátek např. zkuste alokovat dynamicky pole se stejným obsahem jako mají as a bs a zavolat funkci na ně.

    To ted jsem prave vyzkousel pomoci tech statickych poli as, bs. prekopiroval jsem jejich obsah do B a S (pred tim, nez sem volal _dgesv) pomoci for (i=0; i<n; i++) { *(B + i) =bs[i]; } for (i=0; i<n*n; i++) { *(S + i) =as[i]; } Vysledek je kupodivu v poradku!

    O to vic tomu ted ale nerozumim, protoze ty cisla v tech statickych polich as, bs jsem ziskal primo z tohoto programu tim, ze jsem to pole ihned po naplneni for cykly zapsal to textoveho souboru

    26.12.2010 13:57 Preston Pigglesworth
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Vypada to, ze problem je nekde v tom plneni matic ( ////FILL MATRIX // ) : kdyz jsem presunul

    for (i=0; i<n; i++) { *(B + i) =bs[i]; } for (i=0; i<n*n; i++) { *(S + i) =as[i]; } Pred vsechno to naplnovani, tak to zase vyhodilo spatny vysledek..

    jeste jsem za kazde to plneni matice napsal jeji vypis pomoci for (i=0; i<n; i++) {printf("%20.20f \n",*(B+i) ); } ... vsechno je v poradku,vstupy do _dgesv jsou stejne, jako v pripade pouziti statickeho pole
    26.12.2010 23:00 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu

    Hodnoty ve statických polích nejsou úplně stejné jako ty počítané, vypadá to, že jsou zaokrouhlené na šest desetinných míst. A pokud místo zkopírování statického pole dám

      for (i=0; i<n; i++) {
        B[i] = 1E-6 * lround(1E6 * B[i]);
      }
      for (i=0; i<n; i++) {
        for (j=0; j<n; j++) {
          S[i+j*n] = 1E-6 * lround(1E6 * S[i+j*n]);
        }
      }
    

    dostanu stejné výsledky jako se statickým polem. Takže můj tip je, že celý problém je v (ne)stabilitě té soustavy, tj. že i malá změna v koeficientech nebo pravé straně může způsobit (relativně) velkou změnu řešení. Ale nechce se mi počítat vlastní čísla, abych si to ověřil.

    27.12.2010 12:29 Preston Pigglesworth
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Dekuji vsem za pomoc! S tim zaokrouhlovanim mate pravdu, _dgesv pocita spravne. Nakonec jsem nasel chybu ve spatnem umisteni jedne zavorky pri plneni matice S, vzniklo to behem kopirovani z matlabovskeho prototypu. Protoze me ale v minulosti jeden vypocet pocital nesmysly diky ukazatelum, podezrival jsem spatno spravu pameti, za to se omlouvam.. Kazdopadne jeste jednou: diky za pomoc!
    26.12.2010 09:46 Preston Pigglesworth
    Rozbalit Rozbalit vše Re: Ukazatele v C, pole doublu
    Jeste jsem zkousel pouzit jinou knihovnu (intel MKL), vysledek stale stejne spatny, takze knihovnou to neni.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.