Hello community, here is the log from the commit of package step for openSUSE:Factory checked in at 2016-01-10 13:06:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/step (Old) and /work/SRC/openSUSE:Factory/.step.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "step" Changes: -------- --- /work/SRC/openSUSE:Factory/step/step.changes 2015-11-15 12:44:19.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.step.new/step.changes 2016-01-10 13:07:21.000000000 +0100 @@ -1,0 +2,9 @@ +Sun Dec 13 13:34:23 UTC 2015 - tittiatc...@gmail.com + +- Update to KDE Applications 15.12.0 + * KDE Applications 15.12.0 + * https://www.kde.org/announcements/announce-applications-15.12.0.php + * boo#958887 + + +------------------------------------------------------------------- Old: ---- step-15.08.3.tar.xz New: ---- step-15.12.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ step.spec ++++++ --- /var/tmp/diff_new_pack.iR0z8M/_old 2016-01-10 13:07:23.000000000 +0100 +++ /var/tmp/diff_new_pack.iR0z8M/_new 2016-01-10 13:07:23.000000000 +0100 @@ -17,7 +17,7 @@ Name: step -Version: 15.08.3 +Version: 15.12.0 Release: 0 Summary: An interactive physics simulator License: GPL-2.0+ ++++++ step-15.08.3.tar.xz -> step-15.12.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/CMakeLists.txt new/step-15.12.0/CMakeLists.txt --- old/step-15.08.3/CMakeLists.txt 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/CMakeLists.txt 2015-11-04 15:29:54.000000000 +0100 @@ -68,7 +68,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter") include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${EIGEN3_INCLUDE_DIR}) -add_definitions(-DEIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS) #TODO port away from Eigen2-compatability mode add_subdirectory(doc) add_subdirectory(stepcore) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/autotests/CMakeLists.txt new/step-15.12.0/autotests/CMakeLists.txt --- old/step-15.08.3/autotests/CMakeLists.txt 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/autotests/CMakeLists.txt 2015-11-04 15:29:54.000000000 +0100 @@ -1,4 +1,4 @@ -# Copyright 2014 Andreas Cord-Landwehr <cordlandw...@kde.org> +# Copyright 2014-2015 Andreas Cord-Landwehr <cordlandw...@kde.org> # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -50,5 +50,6 @@ stepcore_unit_tests( test_contacts test_metaobject + test_forces # test_worldcopy #FIXME must be reenabled after sorting out derivation issues ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/autotests/test_forces.cc new/step-15.12.0/autotests/test_forces.cc --- old/step-15.08.3/autotests/test_forces.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/step-15.12.0/autotests/test_forces.cc 2015-11-04 15:29:54.000000000 +0100 @@ -0,0 +1,102 @@ +/* + * Copyright 2015 Andreas Cord-Landwehr <cordlandw...@kde.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "test_forces.h" +#include "gravitation.h" +#include "rigidbody.h" +#include "particle.h" +#include "vector.h" +#include <QDebug> + +using namespace StepCore; + +void TestForces::testGravitationalForce() +{ + // setup world + World fakeWorld; + + RigidBody *body = new RigidBody; + body->setMass(10); + fakeWorld.addItem(body); + + Particle *particleA = new Particle; + Particle *particleB = new Particle; + particleA->setMass(10); + particleB->setMass(10); + particleA->setForce(Vector2d::Zero()); + particleB->setForce(Vector2d(0,1)); + particleA->setPosition(Vector2d(0,0)); + particleB->setPosition(Vector2d(0,1)); + fakeWorld.addItem(particleA); + fakeWorld.addItem(particleB); + + // test gravitational force + GravitationForce force(9.8); // use this constant to make varification easier + force.setWorld(&fakeWorld); + force.calcForce(true); // test variance errors in same run + + // only affects particles + QCOMPARE(double(body->force()[0]), 0.0); + QCOMPARE(double(body->force()[1]), 0.0); + + QCOMPARE(double(particleA->force()[0]), 0.0); + QCOMPARE(double(particleA->force()[1]), 980.0); + QCOMPARE(double(particleB->force()[0]), 0.0); + QCOMPARE(double(particleB->force()[1]), -979.0); // note the force + + QCOMPARE(double(particleA->particleErrors()->positionVariance()[0]), 0.0); + QCOMPARE(double(particleA->particleErrors()->positionVariance()[1]), 0.0); + + QVERIFY(force.world()); +} + +void TestForces::testWeightForce() +{ + // setup world + World fakeWorld; + + Particle *particle = new Particle; + particle->setMass(10); + fakeWorld.addItem(particle); + + RigidBody *body = new RigidBody; + body->setMass(10); + body->setPosition(Vector2d::Zero()); + fakeWorld.addItem(body); + + WeightForce force(9.8); // use this constant to make varification easier + force.setWorld(&fakeWorld); + force.calcForce(true); // test variance errors in same run + + QCOMPARE(double(particle->force()[0]), 0.0); + QCOMPARE(double(particle->force()[1]), -98.0); + QCOMPARE(double(particle->particleErrors()->accelerationVariance()[0]), 0.0); + QVERIFY(double(particle->particleErrors()->accelerationVariance()[1]) < 1e-9); + + QCOMPARE(double(body->force()[0]), 0.0); + QCOMPARE(double(body->force()[1]), -98.0); + QCOMPARE(double(body->position()[0]), 0.0); + QCOMPARE(double(body->position()[1]), 0.0); + QCOMPARE(double(body->torque()), 0.0); + QCOMPARE(double(body->rigidBodyErrors()->accelerationVariance()[0]), 0.0); + QVERIFY(double(body->rigidBodyErrors()->accelerationVariance()[1]) < 1e-9); +} + +QTEST_MAIN(TestForces) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/autotests/test_forces.h new/step-15.12.0/autotests/test_forces.h --- old/step-15.08.3/autotests/test_forces.h 1970-01-01 01:00:00.000000000 +0100 +++ new/step-15.12.0/autotests/test_forces.h 2015-11-04 15:29:54.000000000 +0100 @@ -0,0 +1,35 @@ +/* + * Copyright 2015 Andreas Cord-Landwehr <cordlandw...@kde.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) version 3, or any + * later version accepted by the membership of KDE e.V. (or its + * successor approved by the membership of KDE e.V.), which shall + * act as a proxy defined in Section 6 of version 3 of the license. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef TEST_FORCES_H +#define TEST_FORCES_H + +#include <QTest> + +class TestForces: public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void testGravitationalForce(); + void testWeightForce(); +}; + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/org.kde.step.appdata.xml new/step-15.12.0/org.kde.step.appdata.xml --- old/step-15.08.3/org.kde.step.appdata.xml 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/org.kde.step.appdata.xml 2015-11-04 15:29:54.000000000 +0100 @@ -29,6 +29,7 @@ <name xml:lang="sk">Step</name> <name xml:lang="sl">Step</name> <name xml:lang="sv">Step</name> + <name xml:lang="tr">Adım</name> <name xml:lang="uk">Step</name> <name xml:lang="x-test">xxStepxx</name> <name xml:lang="zh-CN">Step</name> @@ -57,6 +58,7 @@ <summary xml:lang="sk">Interaktívny fyzikálny simulátor</summary> <summary xml:lang="sl">Interaktivni fizikalni simulator</summary> <summary xml:lang="sv">Interaktiv fysiksimulator</summary> + <summary xml:lang="tr">Etkileşimli Fizik Öykünücüsü</summary> <summary xml:lang="uk">Інтерактивний фізичний імітатор</summary> <summary xml:lang="x-test">xxInteractive Physical Simulatorxx</summary> <summary xml:lang="zh-CN">交互式物理模拟器</summary> @@ -83,6 +85,7 @@ <p xml:lang="sk">Step je interaktívny fyzikálny simulátor. Umožňuje vám objaviť fyzikálny svet cez simulácie. Funguje takto: umiestnite nejaké telesá na scénu, pridáte nejaké sily ako gravitáciu alebo pružiny, potom kliknete na Simulácia a Step vám ukáže, ako sa vaša scéna bude vyvíjať podľa zákonov fyziky. Môžete zmeniť každú vlastnosť telies/síl vo vašom experimente (aj počas simulácie) a vidieť, ako to zmení vývoj experimentu. S programom Step sa nielen učíte, ale aj cítite, ako fyzika funguje!</p> <p xml:lang="sl">Step je interaktivni fizikalni simulator. Omogoča vam raziskovati svet fizike preko simulacij. Deluje pa na naslednji način: v sceno postavite nekaj teles ter dodate sile kot npr. težnost ali vzmeti. Nato kliknete na Simuliraj in Step vam pokaže, kako bi se scena odvila glede na fizikalne zakone. V poskusu lahko spremenite katerokoli lastnost teles/sil (celo med simulacijo) in si ogledate, kako bi to vplivalo na razvoj poskusa. S programom Step se ne le naučite, ampak tudi občutite kako fizikalni zakoni delujejo!</p> <p xml:lang="sv">Step är en interaktiv fysiksimulator. Den låter dig utforska den fysiska värden genom simuleringar. Den fungerar så här: Du placerar några kroppar i diagrammet, lägger till några krafter som gravitation eller fjädrar, och klickar därefter på Simulera så visar Step dig hur diagrammet förändras enligt fysikens lagar. Du kan ändra alla egenskaper hos kropparna och krafterna i experimentet (till och med under simuleringen) och se hur det påverkar experimentets förlopp. Med Step kan du inte bara lära dig hur fysiken fungerar, utan också få en känsla för det.</p> + <p xml:lang="tr">Step bir etkileşimli fizik öykünücüsüdür. Fiziksel dünyayı simülasyonlarla keşfetmenize imkan verir. Şöyle çalışır: ekranda bazı nesneleri seçersiniz ve yerçekimi veya yay gibi kuvvetler eklersiniz, ardından Hesapla tuşuna tıkladığınızda Step fizik kurallarına göre ekranın nasıl dönüşeceğini gösterir. Deneyinizdeki cisimlerin/kuvvetlerin her özelliğini (simülasyon sırasında bile) değiştirerek bunun sonucu nasıl değiştirdiğini görebilirsiniz. Step ile fiziği sadece öğrenmez onu hissedersiniz!</p> <p xml:lang="uk">Step є інтерактивним імітатором фізичних процесів. Він надає вам змогу вивчати фізичні явища за допомогою їх імітації. Ось як він працює: ви розташовуєте у дослідній області деякі тіла, додаєте сили їх взаємодії (такі як гравітаційні сили та пружні сили у вигляді пружин), а потім натискаєте кнопку «Імітувати, — Step покаже як розвиватимуться події у побудованій вами системі з плином часу відповідно до законів фізики. Ви можете змінювати всі властивості тіл або сил у вашому експерименті (навіть під час імітації), щоб побачити як такі зміни впливають на перебіг експерименту. За допомогою Step ви не просто вивчите фізику, а відчуєте як працюють фізичні закони!</p> <p xml:lang="x-test">xxStep is an interactive physical simulator. It allows you to explore the physical world through simulations. It works like this: you place some bodies on the scene, add some forces such as gravity or springs, then click Simulate and Step shows you how your scene will evolve according to the laws of physics. You can change every property of the bodies/forces in your experiment (even during simulation) and see how this will change evolution of the experiment. With Step you cannot only learn but feel how physics works!xx</p> <p xml:lang="zh-TW">Step 是一套互動式的物理模擬器。它可以讓您透過模擬探索物理的世界。它的運作方式是這樣的:您在場景中放入一些主體,加上一些力,如重力或彈力等,然後按下模擬鍵,Step 就會顯示出在您的場景中,根據物理定律產生的結果。您可以改變每個主體與力的屬性(甚至實驗中也可比改變),並看看它所造成的變化。有了 Step 您不只可以學習,更可以直接感受物理!</p> @@ -110,6 +113,7 @@ <p xml:lang="sk">Funkcie:</p> <p xml:lang="sl">Zmožnosti:</p> <p xml:lang="sv">Funktioner:</p> + <p xml:lang="tr">Özellikler:</p> <p xml:lang="uk">Можливості:</p> <p xml:lang="x-test">xxFeatures:xx</p> <p xml:lang="zh-CN">功能:</p> @@ -136,6 +140,7 @@ <li xml:lang="sk">Simulácie klasickej mechaniky v dvoch rozmeroch</li> <li xml:lang="sl">Klasične mehanske simulacije v dveh dimenzijah</li> <li xml:lang="sv">Simulering av klassisk mekanik i två dimensioner</li> + <li xml:lang="tr">İki boyutlu klasik mekanik simülasyonu</li> <li xml:lang="uk">Імітація класичної механічної взаємодії у двох вимірах</li> <li xml:lang="x-test">xxClassical mechanical simulation in two dimensionsxx</li> <li xml:lang="zh-TW">傳統的二維機械模擬</li> @@ -160,6 +165,7 @@ <li xml:lang="sk">Častice, pružiny s tlakom, gravitačné a coulombove sily</li> <li xml:lang="sl">Delci, vzmeti z dušenjem, težnostne in električne sile</li> <li xml:lang="sv">Partiklar, dämpade fjädrar, gravitationskrafter och coulombkrafter</li> + <li xml:lang="tr">Parçacıklar, sönümlemeli yaylar, yer çekimi ve coulomb kuvvetleri</li> <li xml:lang="uk">Частинки, пружини з елементами в’язкості, гравітаційні і кулонові сили</li> <li xml:lang="x-test">xxParticles, springs with damping, gravitational and coulomb forcesxx</li> <li xml:lang="zh-TW">粒子,有阻力的彈力,重力與庫倫力等</li> @@ -184,6 +190,7 @@ <li xml:lang="sk">Tuhé telesá</li> <li xml:lang="sl">Toga telesa</li> <li xml:lang="sv">Stela kroppar</li> + <li xml:lang="tr">Katı cisimler</li> <li xml:lang="uk">Тверді тіла</li> <li xml:lang="x-test">xxRigid bodiesxx</li> <li xml:lang="zh-TW">堅固主體</li> @@ -208,6 +215,7 @@ <li xml:lang="sk">Detekcia kolízií (aktuálne iba oddelené) a ich spracovanie</li> <li xml:lang="sl">Zaznavanje trkov (trenutno samo diskretnih) in njihovo obravnavanje</li> <li xml:lang="sv">Detektering och hantering av kollisioner (för närvarande bara diskreta)</li> + <li xml:lang="tr">Çarpışma algılama (şu anda sadece ayrık) ve idaresi</li> <li xml:lang="uk">Виявлення (у цій версії лише дискретне) і керування зіткненнями</li> <li xml:lang="x-test">xxCollision detection (currently only discrete) and handlingxx</li> <li xml:lang="zh-TW">碰撞偵測(目前只有不連接的)與處理</li> @@ -232,6 +240,7 @@ <li xml:lang="sk">Mäkké (deformovateľné) telesá simulované ako používateľom upraviteľné systémy častíc-pružín, zvukové vlny</li> <li xml:lang="sl">Simulacija mehkih teles kot sistem delcev/vzmeti, ki jih lahko uredi uporabnik; zvočni valovi</li> <li xml:lang="sv">Mjuka (deformerbara) kroppar simulerade som system med partiklar och fjädrar redigerbara av användaren, ljudvågor</li> + <li xml:lang="tr">Yumuşak (form değiştirebilen), kullanıcının düzenleyebildiği parçacık-yay sistemleri, ses dalgaları</li> <li xml:lang="uk">М’які (пружні) тіла імітуються як система з часточок і пружин, з можливістю зміни її параметрів користувачем, рух якої описують гармонічні функції</li> <li xml:lang="x-test">xxSoft (deformable) bodies simulated as user-editable particles-springs system, sound wavesxx</li> <li xml:lang="zh-TW">軟性(可變形)主體,模擬成使用者可編輯的粒子彈性系統,聲波</li> @@ -256,6 +265,7 @@ <li xml:lang="sk">Molekulárna dynamika (aktuálne používa Lennardov-Jonesov potenciál): plyn a kvapalina, kondenzácia a vyparovanie, výpočet makroskopických kvantít a ich odchýliek</li> <li xml:lang="sl">Molekulska dinamika (trenutno uporablja Lennard-Jonesov potencial): plini in tekočine, kondenzacija in izparevanje, izračun makroskopskih količin in njihovih varianc</li> <li xml:lang="sv">Molekyldynamik (för närvarande med användning av Lennard-Jones potentialen): gaser och vätskor, kondensering och avdunstning, beräkning av makroskopiska kvantiteter och deras varians</li> + <li xml:lang="tr">Moleküler dinamik (şu anda Lennard-Jones potansiyeli kullanıyor): gaz ve sıvı, yoğuşma ve buharlaşma, makroskopik miktarların ve sapmaların hesaplanması</li> <li xml:lang="uk">Молекулярна динаміка (у цій версії з використанням потенціалу Леннарда-Джонса): газ і рідина, конденсація і випаровування, обчислення макроскопічних величин та їх змін</li> <li xml:lang="x-test">xxMolecular dynamics (currently using Lennard-Jones potential): gas and liquid, condensation and evaporation, calculation of macroscopic quantities and their variancesxx</li> <li xml:lang="zh-TW">分子動態(目前使用雷納德-瓊斯勢能,Lennard-Jones potential):氣體與液體,濃縮與蒸發,可見質量與變異的計算</li> @@ -280,6 +290,7 @@ <li xml:lang="sk">Konverzie jednotiek a výpočet výrazov: môžete zadať niečo ako "(2 dni + 3 hodiny) * 80 km/h" a bude to prijaté ako hodnota vzdialenosti (vyžaduje libqalculate)</li> <li xml:lang="sl">Pretvorbe enot in izračuni izrazov: če vnesete npr. "(2 dni + 3 ure) * 80 km/h", bo to obravnavano kot dolžinska vrednost (zahteva libqalculate)</li> <li xml:lang="sv">Enhetskonvertering och uttrycksberäkning: Du kan skriva in någonting i stil med "(2 dagar + 3 timmar) * 80 km/h", vilket accepteras som ett avståndsvärde (kräver libqalculate)</li> + <li xml:lang="tr">Birim dönüştürme ve ifade hesaplama: "(2 gün + 3 saat) * 80 km/h" gibi bir ifade girebilirsiniz ve bu mesafe değeri (libqalculate gerektirir) olarak kabul edilecektir</li> <li xml:lang="uk">Перетворення одиниць і обчислення виразів: ви можете ввести щось на зразок «(2 дні + 3 години) * 80 км/г» і цю величину буде прийнято як значення відстані (для того, щоб це працювало слід встановити libqalculate)</li> <li xml:lang="x-test">xxUnits conversion and expression calculation: you can enter something like "(2 days + 3 hours) * 80 km/h" and it will be accepted as distance value (requires libqalculate)xx</li> <li xml:lang="zh-TW">單位轉換與表示式計算:您可以輸入像是 "(2 days + 3 hours) * 80 km/h" 它會接受並做距離計算(需要 libqalculate)</li> @@ -304,6 +315,7 @@ <li xml:lang="sk">Výpočet a šírenie chýb: môžete zadať hodnoty ako "1,3 ± 0,2" pre ľubovoľnú vlastnosť a chyby pre všetky závislé vlastnosti sa prepočítajú pomocou štatistických vzorcov</li> <li xml:lang="sl">Izračun napak in njihov prenos: vnesete lahko npr. "1.3 ± 0.2" za katerokoli vrednost in napake za vse odvisne lastnosti bodo izračunane s pomočjo statističnih enačb</li> <li xml:lang="sv">Felberäkning och felpropagering: Du kan skriva in värden som "1,3 ± 0,2" för alla egenskaper, och fel för alla beroende egenskaper beräknas med statistiska formler</li> + <li xml:lang="tr">Hata hesaplama ve yayılım: her özellik için "1.3 ± 0.2" gibi değerler girebilirsiniz ve tüm bağımlı özelliklerin hataları istatistik formülleri kullanılarak hesaplanır</li> <li xml:lang="uk">Обчислення і поширення похибок: ви можете вводити значення на зразок «1.3 ± 0.2» для будь-якої з властивостей, і похибки для всіх властивостей, що залежать від вказаної властивості, буде обчислено за статистичними формулами</li> <li xml:lang="x-test">xxErrors calculation and propagation: you can enter values like "1.3 ± 0.2" for any property and errors for all dependent properties will be calculated using statistical formulasxx</li> <li xml:lang="zh-TW">計算與增殖誤差:您可以對每個屬性輸入像是 "1.3 ± 0.2" 允許誤差值,它會使用統計公式來計算</li> @@ -328,6 +340,7 @@ <li xml:lang="sk">Odhad chýb riešiteľa: chyby spôsobené riešiteľom sa počítajú a pridávajú do používateľom zadaných chýb</li> <li xml:lang="sl">Ocena napake reševalnika: napake, ki so posledica računanja reševalnika, se izračunajo in dodajo k uporabniško vnesenim napakam</li> <li xml:lang="sv">Feluppskattning av evalueringsenheten: fel som införs av evalueringsenheten beräknas och läggs till användarinmatade fel</li> + <li xml:lang="tr">Çözücü hata tahmini: çözücü tarafından katılan hatalar hesaplanır ve kullanıcı tarafından girilen hatalara ilave edilir</li> <li xml:lang="uk">Оцінка похибки розв’язувача: похибки, що виникають внаслідок застосування числових методів розв’язання задач, обчислюються і додаються до введених користувачем похибок</li> <li xml:lang="x-test">xxSolver error estimation: errors introduced by the solver is calculated and added to user-entered errorsxx</li> <li xml:lang="zh-TW">計算器誤差估計:由計算器造成的誤差會被計算,並加入使用者輸入的誤差</li> @@ -352,6 +365,7 @@ <li xml:lang="sk">Niekoľko rôznych riešiteľov: do 8. úrovne, explicitné a implicitné, s alebo bez adaptívnej časovej pečiatky (väčšina riešiteľov vyžaduje knižnicu GSL)</li> <li xml:lang="sl">Različni reševalniki: do osmega reda, eksplicitni in implicitni, brez ali z prilagodljivim časovnim korakom (večina reševalnikov zahteva knjižnico GSL)</li> <li xml:lang="sv">Flera olika evalueringsenheter: Upp till 8:e ordningens, explicit eller implicit, med eller utan adaptivt tidssteg (de flesta evalueringsenheter kräver GSL-biblioteket)</li> + <li xml:lang="tr">Çeşitli farklı çözücüler: 8. dereceye kadar, açık ve kapalı, uyarlanabilir zamanlama varken ve yokken (çözücülerin çoğu GSL kitaplığını gerektirir)</li> <li xml:lang="uk">Декілька різних розв’язувачів: аж до восьмого порядку, явні і неявні, з та без зміни кроку за часом (більшість з розв’язувачів потребують бібліотеки GSL)</li> <li xml:lang="x-test">xxSeveral different solvers: up to 8th order, explicit and implicit, with or without adaptive timestep (most of the solvers require GSL library)xx</li> <li xml:lang="zh-TW">數種不同的計算器:最高到八階,外顯與內含的,包含與不包含時間(大部份的計算器都需要 GSL 函式庫)</li> @@ -376,6 +390,7 @@ <li xml:lang="sk">Nástroj ovládača na jednoduché ovládanie vlastností počas simulácie (dokonca s vlastnými klávesovými skratkami)</li> <li xml:lang="sl">Nadzorno orodje za enostaven nadzor nad lastnostmi med simulacijo (celo s tipkovnimi bližnjicami po meri)</li> <li xml:lang="sv">Styrverktyg för att enkelt hantera egenskaper under simuleringen (också med egna snabbtangenter)</li> + <li xml:lang="tr">Simülasyon sırasında özelliklerin kontrolü için araç (özel klavye kısayolları ile bile kullanılabilir)</li> <li xml:lang="uk">Інструмент «регулятор» призначено для простого керування властивостями під час імітації (можна навіть призначити власні клавіатурні скорочення для керування регулятором)</li> <li xml:lang="x-test">xxController tool to easily control properties during simulation (even with custom keyboard shortcuts)xx</li> <li xml:lang="zh-TW">用於在模擬實驗時控制變因的控制工具(還有鍵盤捷徑)</li> @@ -400,6 +415,7 @@ <li xml:lang="sk">Nástroje na vizualizáciu výsledkov: graf, meter, stopár</li> <li xml:lang="sl">Orodja za prikaz rezultatov: graf, merilnik, sledilnik</li> <li xml:lang="sv">Verktyg för att åskådliggöra resultat: grafer, mätare, spår</li> + <li xml:lang="tr">Sonuçları görselleştirmek için araçlar: grafik, metre, izleyici</li> <li xml:lang="uk">Інструменти для візуалізації результатів: графік, вимірювач, траєкторія</li> <li xml:lang="x-test">xxTools to visualize results: graph, meter, tracerxx</li> <li xml:lang="zh-TW">視覺化結果的工具:圖形、尺、追蹤器</li> @@ -424,6 +440,7 @@ <li xml:lang="sk">Kontextové informácie pre všetky objekty, integrovaný prehliadač Wikipédia</li> <li xml:lang="sl">Vsebinske podrobnosti za vse predmete, vgrajen brskalnik po Wikipediji</li> <li xml:lang="sv">Sammanhangsberoende information för alla objekt, inbyggd Wikipedia-bläddrare</li> + <li xml:lang="tr">Tüm nesneler için içerik bilgileri, entegre wikipedia tarayıcı</li> <li xml:lang="uk">Контекстна інформація щодо всіх об’єктів, інтегрований переглядач вікіпедії</li> <li xml:lang="x-test">xxContext information for all objects, integrated wikipedia browserxx</li> <li xml:lang="zh-TW">所有物件的內文資訊,整合的維基瀏覽器</li> @@ -448,6 +465,7 @@ <li xml:lang="sk">Kolekcia ukážkových experimentov, viac je možné stiahnuť z KNewStuff</li> <li xml:lang="sl">Zbirka primerov poskusov, več jih lahko prejmete z "Dobi vroče novosti"</li> <li xml:lang="sv">En samling exempel på experiment, och fler kan laddas ner via Hämta heta nyheter</li> + <li xml:lang="tr">Örnek deney koleksiyonu, daha çoğu KNewStuff ile indirilebilir</li> <li xml:lang="uk">Збірка зразкових експериментів, додаткові експерименти можна отримати за допомогою KNewStuff</li> <li xml:lang="x-test">xxCollection of example experiments, more can be downloaded with KNewStuffxx</li> <li xml:lang="zh-TW">範例實驗的收藏。可以透過 KNewStuff 下載更多</li> @@ -472,6 +490,7 @@ <li xml:lang="sk">Integrované kurzy</li> <li xml:lang="sl">Vgrajeni vodniki</li> <li xml:lang="sv">Integrerade handledningar</li> + <li xml:lang="tr">Bütünleşik öğreticiler</li> <li xml:lang="uk">Вбудовані підручники</li> <li xml:lang="x-test">xxIntegrated tutorialsxx</li> <li xml:lang="zh-TW">整合教學</li> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/step/gasgraphics.cc new/step-15.12.0/step/gasgraphics.cc --- old/step-15.08.3/step/gasgraphics.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/step/gasgraphics.cc 2015-11-04 15:29:54.000000000 +0100 @@ -138,20 +138,20 @@ } StepCore::Vector2d GasVertexHandlerGraphicsItem::value() { - return gas()->measureRectSize().cwise()*(corners[_vertexNum]); + return (gas()->measureRectSize().array()*(corners[_vertexNum]).array()).matrix(); } void GasVertexHandlerGraphicsItem::setValue(const StepCore::Vector2d& value) { StepCore::Vector2d oCorner = gas()->measureRectCenter() - - gas()->measureRectSize().cwise()*(corners[_vertexNum]); + (gas()->measureRectSize().array()*(corners[_vertexNum].array())).matrix(); StepCore::Vector2d delta = (gas()->measureRectCenter() + value - oCorner)/2.0; StepCore::Vector2d newPos = oCorner + delta; StepCore::Vector2d newSize = (newPos - oCorner)*2.0; double d = -0.1/currentViewScale(); - StepCore::Vector2d sign = delta.cwise()*(corners[_vertexNum]); + StepCore::Vector2d sign = (delta.array()*(corners[_vertexNum].array())).matrix(); if(sign[0] < d || sign[1] < d) { if(sign[0] < d) { newPos[0] = oCorner[0]; newSize[0] = 0; @@ -270,7 +270,7 @@ int num = -1; double minDist2 = HANDLER_SNAP_SIZE*HANDLER_SNAP_SIZE/s/s; for(unsigned int i=0; i<4; ++i) { - double dist2 = (l - size.cwise()*(OnHoverHandlerGraphicsItem::corners[i])).squaredNorm(); + double dist2 = (l - (size.array()*(OnHoverHandlerGraphicsItem::corners[i]).array()).matrix()).squaredNorm(); if(dist2 < minDist2) { num = i; minDist2 = dist2; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/step/main.cc new/step-15.12.0/step/main.cc --- old/step-15.08.3/step/main.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/step/main.cc 2015-11-04 15:29:54.000000000 +0100 @@ -23,6 +23,7 @@ #include <KLocalizedString> #include <QUrl> #include <QDir> +#include <QIcon> #include "mainwindow.h" @@ -37,14 +38,13 @@ { KLocalizedString::setApplicationDomain("step"); + QApplication app(argc, argv); QApplication::setApplicationName("step"); QApplication::setApplicationVersion(version); QApplication::setOrganizationDomain("kde.org"); QApplication::setApplicationDisplayName(i18n("Step")); QApplication::setWindowIcon(QIcon::fromTheme("step")); - QApplication app(argc, argv); - KAboutData aboutData("step", i18n("Step"), version, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/step/polygongraphics.cc new/step-15.12.0/step/polygongraphics.cc --- old/step-15.08.3/step/polygongraphics.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/step/polygongraphics.cc 2015-11-04 15:29:54.000000000 +0100 @@ -547,21 +547,21 @@ } StepCore::Vector2d BoxVertexHandlerGraphicsItem::value() { - return box()->vectorLocalToWorld(box()->size().cwise()*(corners[_vertexNum])); + return box()->vectorLocalToWorld((box()->size().array()*(corners[_vertexNum]).array()).matrix()); //return box()->vectorLocalToWorld(box()->vertexes()[_vertexNum]); } void BoxVertexHandlerGraphicsItem::setValue(const StepCore::Vector2d& value) { StepCore::Vector2d oCorner = box()->position() - - box()->size().cwise()*(corners[_vertexNum]); + (box()->size().array()*(corners[_vertexNum].array())).matrix(); StepCore::Vector2d delta = (box()->position() + value - oCorner)/2.0; StepCore::Vector2d newPos = oCorner + delta; StepCore::Vector2d newSize = (newPos - oCorner)*2.0; double d = -0.1/currentViewScale(); - StepCore::Vector2d sign = delta.cwise()*(corners[_vertexNum]); + StepCore::Vector2d sign = (delta.array()*(corners[_vertexNum]).array()).matrix(); if(sign[0] < d || sign[1] < d) { if(sign[0] < d) { newPos[0] = oCorner[0]; newSize[0] = 0; @@ -603,7 +603,7 @@ int num = -1; double minDist2 = HANDLER_SNAP_SIZE*HANDLER_SNAP_SIZE/s/s; for(unsigned int i=0; i<4; ++i) { - double dist2 = (l - size.cwise()*(OnHoverHandlerGraphicsItem::corners[i])).squaredNorm(); + double dist2 = (l - (size.array()*(OnHoverHandlerGraphicsItem::corners[i]).array()).matrix()).squaredNorm(); if(dist2 < minDist2) { num = i; minDist2 = dist2; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/step/toolgraphics.cc new/step-15.12.0/step/toolgraphics.cc --- old/step-15.08.3/step/toolgraphics.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/step/toolgraphics.cc 2015-11-04 15:29:54.000000000 +0100 @@ -79,7 +79,7 @@ double s = currentViewScale(); StepCore::Vector2d size = _item->metaObject()->property("size")-> readVariant(_item).value<StepCore::Vector2d>()/s; - return size.cwise()* corners[_vertexNum]; + return (size.array()* corners[_vertexNum].array()).matrix(); } void WidgetVertexHandlerGraphicsItem::setValue(const StepCore::Vector2d& value) @@ -94,7 +94,7 @@ StepCore::Vector2d position = _item->metaObject()->property("position")-> readVariant(_item).value<StepCore::Vector2d>(); - StepCore::Vector2d oCorner = position - size.cwise()*(corners[_vertexNum]); + StepCore::Vector2d oCorner = position - (size.array()*((corners[_vertexNum]).array())).matrix(); oCorner = pointToVector( viewportTransform.inverted().map( QPointF(viewportTransform.map(vectorToPoint(oCorner)).toPoint()) )); @@ -105,7 +105,7 @@ QPointF(viewportTransform.map(vectorToPoint(newPos)).toPoint()) )); StepCore::Vector2d newSize = (newPos - oCorner)*2.0; - StepCore::Vector2d sign = delta.cwise()*(corners[_vertexNum]); + StepCore::Vector2d sign = (delta.array()*(corners[_vertexNum].array())).matrix(); double d = -0.1/s; if(sign[0] < d || sign[1] < d) { if(sign[0] < d) { @@ -157,7 +157,7 @@ int num = -1; double minDist2 = HANDLER_SNAP_SIZE*HANDLER_SNAP_SIZE/s/s; for(unsigned int i=0; i<4; ++i) { - double dist2 = (l - size.cwise()*(WidgetVertexHandlerGraphicsItem::corners[i])).squaredNorm(); + double dist2 = (l - (size.array()*(WidgetVertexHandlerGraphicsItem::corners[i]).array()).matrix()).squaredNorm(); if(dist2 < minDist2) { num = i; minDist2 = dist2; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/constraintsolver.cc new/step-15.12.0/stepcore/constraintsolver.cc --- old/step-15.08.3/stepcore/constraintsolver.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/constraintsolver.cc 2015-11-04 15:29:54.000000000 +0100 @@ -20,6 +20,7 @@ #include "rigidbody.h" #include "particle.h" #include "types.h" +#include <iostream> #include <unsupported/Eigen/IterativeSolvers> #include <cmath> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/coulombforce.cc new/step-15.12.0/stepcore/coulombforce.cc --- old/step-15.08.3/stepcore/coulombforce.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/coulombforce.cc 2015-11-04 15:29:54.000000000 +0100 @@ -68,12 +68,13 @@ ChargedParticleErrors* pe1 = p1->chargedParticleErrors(); ChargedParticleErrors* pe2 = p2->chargedParticleErrors(); Vector2d rV = pe2->positionVariance() + pe1->positionVariance(); - Vector2d forceV = force.cwise().square().cwise()* ( - Vector2d(coulombForceErrors()->_coulombConstVariance / square(_coulombConst) + - pe1->chargeVariance() / square(p1->charge()) + - pe2->chargeVariance() / square(p2->charge())) + + double chargeVariance = coulombForceErrors()->_coulombConstVariance / square(_coulombConst) + + pe1->chargeVariance() / square(p1->charge()) + + pe2->chargeVariance() / square(p2->charge()); + Vector2d forceV = force.array().square()* ( + Vector2d(chargeVariance, chargeVariance) + Vector2d(rV[0] * square(1/r[0] - 3*r[0]/rnorm2) + rV[1] * square(3*r[1]/rnorm2), - rV[1] * square(1/r[1] - 3*r[1]/rnorm2) + rV[0] * square(3*r[0]/rnorm2))); + rV[1] * square(1/r[1] - 3*r[1]/rnorm2) + rV[0] * square(3*r[0]/rnorm2))).array(); pe1->applyForceVariance(forceV); pe2->applyForceVariance(forceV); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/eulersolver.cc new/step-15.12.0/stepcore/eulersolver.cc --- old/step-15.08.3/stepcore/eulersolver.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/eulersolver.cc 2015-11-04 15:29:54.000000000 +0100 @@ -69,7 +69,7 @@ _ytemp = *y + (stepSize/2)*_ydiff; if(yvar) { // error calculation - *ytempvar = (yvar->cwise().sqrt()+(stepSize/2)*(*ydiffvar)).cwise().square(); + *ytempvar = (yvar->array().sqrt().matrix()+(stepSize/2)*(*ydiffvar)).array().square().matrix(); } int ret = _function(t + stepSize/2, _ytemp.data(), ytempvar?ytempvar->data():0, @@ -105,8 +105,8 @@ // For now we are using the following formula which // assumes that yerr are equal and correlated on adjacent steps // TODO: improve this formula - *yvar = (ytempvar->cwise().sqrt()+(stepSize/2)*(*ydiffvar)).cwise().square() - + 3*_yerr.cwise().square(); + *yvar = (ytempvar->array().sqrt().matrix()+(stepSize/2)*(*ydiffvar)).array().square().matrix() + + 3*_yerr.array().square().matrix(); } return OK; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/gas.cc new/step-15.12.0/stepcore/gas.cc --- old/step-15.08.3/stepcore/gas.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/gas.cc 2015-11-04 15:29:54.000000000 +0100 @@ -134,7 +134,7 @@ Vector2d rV = pe2->positionVariance() + pe1->positionVariance(); GasLJForceErrors* ge = gasLJForceErrors(); - Vector2d forceV = r.cwise().square() * ( + Vector2d forceV = r.array().square().matrix() * ( ge->_rminVariance * square( (12*_a/_rmin/rnorm6 - 6*_b/_rmin)/rnorm8 ) + ge->_depthVariance * square( 12*(_rmin12/rnorm6 - _rmin6)/rnorm8 ) ); @@ -364,7 +364,7 @@ if(p1->position()[0] < r0[0] || p1->position()[0] > r1[0] || p1->position()[1] < r0[1] || p1->position()[1] > r1[1]) continue; - velocityVariance += (p1->velocity() - velocity).cwise().square(); + velocityVariance += (p1->velocity() - velocity).array().square().matrix(); ParticleErrors* pe1 = static_cast<ParticleErrors*>(p1->tryGetObjectErrors()); if(pe1) velocityVariance += pe1->velocityVariance(); @@ -422,7 +422,7 @@ if(pe1) { energyVariance += pe1->massVariance() * square(p1->velocity().squaredNorm()) + - ((2*p1->mass()*p1->velocity()).cwise().square()).dot(pe1->velocityVariance()); + ((2*p1->mass()*p1->velocity()).array().square().matrix()).dot(pe1->velocityVariance()); } ++count; @@ -481,7 +481,7 @@ if(pe1) { temperatureVariance += pe1->massVariance() * square((p1->velocity() - meanVelocity).squaredNorm()) + - ((p1->mass()*(p1->velocity() - meanVelocity)).cwise().square()).dot(pe1->velocityVariance()); + ((p1->mass()*(p1->velocity() - meanVelocity)).array().square().matrix()).dot(pe1->velocityVariance()); } ++count; @@ -540,7 +540,7 @@ if(pe1) { pressureVariance += pe1->massVariance() * square((p1->velocity() - meanVelocity).squaredNorm()) + - ((p1->mass()*(p1->velocity() - meanVelocity)).cwise().square()).dot(pe1->velocityVariance()); + ((p1->mass()*(p1->velocity() - meanVelocity)).array().square().matrix()).dot(pe1->velocityVariance()); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/gas.h new/step-15.12.0/stepcore/gas.h --- old/step-15.08.3/stepcore/gas.h 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/gas.h 2015-11-04 15:29:54.000000000 +0100 @@ -198,7 +198,7 @@ void setMeasureRectCenter(const Vector2d& measureRectCenter) { _measureRectCenter = measureRectCenter; } const Vector2d& measureRectSize() const { return _measureRectSize; } - void setMeasureRectSize(const Vector2d& measureRectSize) { _measureRectSize = measureRectSize.cwise().abs(); } + void setMeasureRectSize(const Vector2d& measureRectSize) { _measureRectSize = measureRectSize.array().abs().matrix(); } /** Get (and possibly create) GasErrors object */ GasErrors* gasErrors() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/gravitation.cc new/step-15.12.0/stepcore/gravitation.cc --- old/step-15.08.3/stepcore/gravitation.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/gravitation.cc 2015-11-04 15:29:54.000000000 +0100 @@ -85,12 +85,9 @@ ParticleErrors* pe1 = p1->particleErrors(); ParticleErrors* pe2 = p2->particleErrors(); Vector2d rV = pe2->positionVariance() + pe1->positionVariance(); - Vector2d forceV = force.cwise().square() .cwise()* ( - Vector2d(gravitationForceErrors()->_gravitationConstVariance / square(_gravitationConst) + - pe1->massVariance() / square(p1->mass()) + - pe2->massVariance() / square(p2->mass())) + - Vector2d(rV[0] * square(1/r[0] - 3*r[0]/rnorm2) + rV[1] * square(3*r[1]/rnorm2), - rV[1] * square(1/r[1] - 3*r[1]/rnorm2) + rV[0] * square(3*r[0]/rnorm2))); + Vector2d forceV = force.array().square()* ( + Vector2d(rV[0] * square(1/r[0] - 3*r[0]/rnorm2) + rV[1] * square(3*r[1]/rnorm2), + rV[1] * square(1/r[1] - 3*r[1]/rnorm2) + rV[0] * square(3*r[0]/rnorm2))).array(); pe1->applyForceVariance(forceV); pe2->applyForceVariance(forceV); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/particle.cc new/step-15.12.0/stepcore/particle.cc --- old/step-15.08.3/stepcore/particle.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/particle.cc 2015-11-04 15:29:54.000000000 +0100 @@ -70,24 +70,24 @@ Vector2d ParticleErrors::accelerationVariance() const { return _forceVariance/square(particle()->mass()) + - _massVariance*(particle()->force()/square(particle()->mass())).cwise().square(); + _massVariance*(particle()->force()/square(particle()->mass())).array().square().matrix(); } Vector2d ParticleErrors::momentumVariance() const { return _velocityVariance * square(particle()->mass()) + - particle()->velocity().cwise().square() * _massVariance; + (particle()->velocity().array().square()).matrix() * _massVariance; } void ParticleErrors::setMomentumVariance(const Vector2d& momentumVariance) { - _velocityVariance = (momentumVariance - particle()->velocity().cwise().square() * _massVariance) / + _velocityVariance = (momentumVariance - (particle()->velocity().array().square()).matrix() * _massVariance) / square(particle()->mass()); } double ParticleErrors::kineticEnergyVariance() const { - return particle()->velocity().cwise().square().dot(_velocityVariance) * square(particle()->mass()) + + return ((particle()->velocity().array().square()).matrix()).dot(_velocityVariance) * square(particle()->mass()) + square(particle()->velocity().squaredNorm()/2) * _massVariance; } @@ -95,7 +95,7 @@ { _velocityVariance = (kineticEnergyVariance - square(particle()->velocity().squaredNorm()/2) * _massVariance) / square(particle()->mass()) / 2 * - (particle()->velocity().cwise().square().cwise().inverse()); + (particle()->velocity().array().square().array().inverse()); if(!std::isfinite(_velocityVariance[0]) || _velocityVariance[0] < 0 || !std::isfinite(_velocityVariance[1]) || _velocityVariance[1]) { _velocityVariance.setZero(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/rigidbody.cc new/step-15.12.0/stepcore/rigidbody.cc --- old/step-15.08.3/stepcore/rigidbody.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/rigidbody.cc 2015-11-04 15:29:54.000000000 +0100 @@ -105,7 +105,7 @@ Vector2d RigidBodyErrors::accelerationVariance() const { return _forceVariance/square(rigidBody()->mass()) + - _massVariance*(rigidBody()->force()/square(rigidBody()->mass())).cwise().square(); + _massVariance*(rigidBody()->force()/square(rigidBody()->mass())).array().square().matrix(); } double RigidBodyErrors::angularAccelerationVariance() const @@ -117,12 +117,12 @@ Vector2d RigidBodyErrors::momentumVariance() const { return _velocityVariance * square(rigidBody()->mass()) + - rigidBody()->velocity().cwise().square() * _massVariance; + rigidBody()->velocity().array().square().matrix() * _massVariance; } void RigidBodyErrors::setMomentumVariance(const Vector2d& momentumVariance) { - _velocityVariance = (momentumVariance - rigidBody()->velocity().cwise().square() * _massVariance) / + _velocityVariance = (momentumVariance - rigidBody()->velocity().array().square().matrix() * _massVariance) / square(rigidBody()->mass()); } @@ -141,7 +141,7 @@ double RigidBodyErrors::kineticEnergyVariance() const { - return (rigidBody()->velocity().cwise().square()).dot(_velocityVariance) * square(rigidBody()->mass()) + + return (rigidBody()->velocity().array().square().matrix()).dot(_velocityVariance) * square(rigidBody()->mass()) + square(rigidBody()->velocity().squaredNorm()/2) * _massVariance + _angularVelocityVariance * square(rigidBody()->angularVelocity() * rigidBody()->inertia()) + square(square(rigidBody()->angularVelocity())/2) * _inertiaVariance; @@ -150,9 +150,9 @@ void RigidBodyErrors::setKineticEnergyVariance(double kineticEnergyVariance) { double t = kineticEnergyVariance - this->kineticEnergyVariance() + - (rigidBody()->velocity().cwise().square()).dot(_velocityVariance) * square(rigidBody()->mass()); + (rigidBody()->velocity().array().square().matrix()).dot(_velocityVariance) * square(rigidBody()->mass()); _velocityVariance = t / square(rigidBody()->mass()) / 2 * - (rigidBody()->velocity().cwise().square().cwise().inverse()); + (rigidBody()->velocity().array().square().inverse().matrix()); if(!std::isfinite(_velocityVariance[0]) || _velocityVariance[0] < 0 || !std::isfinite(_velocityVariance[1]) || _velocityVariance[1]) { _velocityVariance.setZero(); @@ -349,7 +349,7 @@ void Box::setSize(const Vector2d& size) { - Vector2d s(size.cwise().abs()/2.0); + Vector2d s(size.array().abs().matrix()/2.0); _vertexes[0] << -s[0], -s[1]; _vertexes[1] << s[0], -s[1]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/spring.cc new/step-15.12.0/stepcore/spring.cc --- old/step-15.08.3/stepcore/spring.cc 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/spring.cc 2015-11-04 15:29:54.000000000 +0100 @@ -112,8 +112,8 @@ Vector2d forceV = (se->_restLengthVariance * square(_stiffness) + se->_stiffnessVariance * square(dl) + se->_dampingVariance * square(vr/l) + - ( (_damping/l*r).cwise().square() ).dot(vV) - )/square(l)*r.cwise().square(); + ( (_damping/l*r).array().square() ).matrix().dot(vV) + )/square(l)*r.array().square(); forceV[0] += rV[0] * square(_stiffness*( 1 - _restLength/l*(1 - square(r[0]/l)) ) + _damping/(l*l)*( v[0]*r[0] + vr - 2*vr*square(r[0]/l) )) + @@ -276,9 +276,9 @@ return square(dl) * _stiffnessVariance + square(s->stiffness()) * _restLengthVariance + square(r.dot(v)/l) * _dampingVariance + - vV.dot((s->damping()/l*r).cwise().square()) + + vV.dot((s->damping()/l*r).array().square().matrix()) + rV.dot((( s->stiffness() - s->damping()*r.dot(v) / (l*l) ) / l * r + - s->damping() / l * v).cwise().square()); + s->damping() / l * v).array().square().matrix()); } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/step-15.08.3/stepcore/tool.h new/step-15.12.0/stepcore/tool.h --- old/step-15.08.3/stepcore/tool.h 2015-11-04 19:37:34.000000000 +0100 +++ new/step-15.12.0/stepcore/tool.h 2015-11-04 15:29:54.000000000 +0100 @@ -103,7 +103,7 @@ /** Get size of the note */ const Vector2d& size() const { return _size; } /** Set size of the note */ - void setSize(const Vector2d& size) { _size = size.cwise().abs(); } + void setSize(const Vector2d& size) { _size = size.array().abs(); } /** Get note text */ const QString& text() const { return _text; } @@ -138,7 +138,7 @@ /** Get size of the graph */ const Vector2d& size() const { return _size; } /** Set size of the graph */ - void setSize(const Vector2d& size) { _size = size.cwise().abs(); } + void setSize(const Vector2d& size) { _size = size.array().abs(); } /** Get pointer to the objects for X axis */ Object* objectX() const { return _objectX; } @@ -291,7 +291,7 @@ /** Get size of the meter */ const Vector2d& size() const { return _size; } /** Set size of the meter */ - void setSize(const Vector2d& size) { _size = size.cwise().abs(); } + void setSize(const Vector2d& size) { _size = size.array().abs(); } /** Get pointer to the observed object */ Object* object() const { return _object; } @@ -370,7 +370,7 @@ /** Get size of the Controller */ const Vector2d& size() const { return _size; } /** Set size of the Controller */ - void setSize(const Vector2d& size) { _size = size.cwise().abs(); } + void setSize(const Vector2d& size) { _size = size.array().abs(); } /** Get pointer to the controlled object */ Object* object() const { return _object; }