mirror of
https://git.code.sf.net/p/ngspice/ngspice
synced 2026-09-03 18:59:44 +02:00
commit 4939bc89934899c16dcd14e11839bedd3c289ee9 Author: Markus Mueller <[email protected]> Date: Sun Oct 25 22:04:16 2020 +0100 added cppduals cleanly commit 834cbc5aba9c1d5470a6f838161703a657d12810 Author: Markus Mueller <[email protected]> Date: Sun Oct 25 22:03:40 2020 +0100 remove cppduals commit69b922cef2Author: Markus Mueller <[email protected]> Date: Sun Oct 25 21:59:00 2020 +0100 cppduals in new diretory commit4337cc0e33Author: Markus Mueller <[email protected]> Date: Sun Oct 25 21:49:52 2020 +0100 hicum license cleaning commitba439dfdf5Author: Markus Mueller <[email protected]> Date: Sat Oct 17 13:19:05 2020 +0200 moved sh stamp, working commit29028ff34dAuthor: Markus Mueller <[email protected]> Date: Sat Oct 17 12:56:54 2020 +0200 forgot something commit5743d2b551Author: Markus Mueller <[email protected]> Date: Sat Oct 17 12:54:35 2020 +0200 rth stamp moved (no yet working) commit42d61da3ebAuthor: Markus Mueller <[email protected]> Date: Sat Oct 17 11:54:10 2020 +0200 Hicum C/C++ code now under 3-clause BSD commit5088e869eaAuthor: Markus Mueller <[email protected]> Date: Sat Oct 17 11:44:57 2020 +0200 cleaned comments commit18fc66e71bAuthor: dwarning <dwarning> Date: Sat Sep 12 19:48:11 2020 +0200 rm some less useful comments - no code change commit861f286fdaAuthor: Markus Mueller <[email protected]> Date: Tue Sep 8 15:45:46 2020 +0200 clean hicum2ask commita52274ba7dAuthor: Markus Mueller <[email protected]> Date: Tue Sep 8 15:43:18 2020 +0200 fix nqs transient commitfa7f96b4afAuthor: Markus Mueller <[email protected]> Date: Mon Sep 7 13:17:42 2020 +0200 fix HICUM csu readin commit23183f10b6Author: Markus Mueller <[email protected]> Date: Sat Aug 8 15:35:32 2020 +0200 added it to Hicum states -> noise commit020fc70607Author: dwarning <dwarning> Date: Tue Aug 4 09:18:05 2020 +0200 change inst to here commit33d06d9732Author: dwarning <dwarning> Date: Tue Aug 4 09:12:37 2020 +0200 reintroduce iavl and correct ibici shot noise commit7251265231Author: dwarning <dwarning> Date: Tue Aug 4 08:59:26 2020 +0200 more reasonable plot scaling commit67919b9bd8Author: dwarning <dwarning> Date: Tue Aug 4 08:56:04 2020 +0200 yet another try for flicker noise scaling commit689177a55fAuthor: dwarning <dwarning> Date: Mon Aug 3 10:41:44 2020 +0200 correct multiplier scaling for rsu commit58b89af40aAuthor: dwarning <dwarning> Date: Sun Aug 2 18:57:14 2020 +0200 prevent division by 0 for rbi commita4e7eb5b6cAuthor: dwarning <dwarning> Date: Sun Aug 2 18:25:51 2020 +0200 fix instance multiplier application for noise commit36862a7bc6Author: dwarning <dwarning> Date: Fri Jul 31 21:06:13 2020 +0200 white spaces commit8a0504bb13Author: dwarning <dwarning> Date: Fri Jul 31 18:32:45 2020 +0200 add a transient analysis example commitc1f0348697Author: dwarning <dwarning> Date: Fri Jul 31 18:31:10 2020 +0200 still problems in different terminal configurations commit26e026e4c8Author: Markus Mueller <[email protected]> Date: Fri Jul 31 14:36:34 2020 +0200 fix stamp for Cth commitdd84b1fcd3Author: Markus Mueller <[email protected]> Date: Fri Jul 31 14:22:16 2020 +0200 fix bug in Cscp stamp commit1f13d2526fAuthor: dwarning <dwarning> Date: Fri Jul 31 11:29:25 2020 +0200 visualc mod - no impact to hicum commitcff491fecaAuthor: dwarning <dwarning> Date: Fri Jul 31 10:59:52 2020 +0200 wrong and twice assignment commit4a9dc52037Author: dwarning <dwarning> Date: Fri Jul 31 10:00:20 2020 +0200 twice assignment commitc76bcc7ccaAuthor: dwarning <dwarning> Date: Thu Jul 30 12:36:30 2020 +0200 delete base nodes from inner to outer commit4a472a3451Author: dwarning <dwarning> Date: Mon Jul 27 15:34:15 2020 +0200 correct the switch for Vbici limiting commitf47bc449b3Author: dwarning <dwarning> Date: Sun Jul 26 21:56:48 2020 +0200 few parameter adaptions to version 2.40 commit5901ec2902Author: dwarning <dwarning> Date: Sun Jul 26 16:37:44 2020 +0200 sign for CONSTCtoK must be + commit556171a905Author: dwarning <dwarning> Date: Sun Jul 26 16:36:15 2020 +0200 rbi is 0 if nodes are collapsed commit724887f32cAuthor: Markus Mueller <[email protected]> Date: Sun Jul 26 12:45:15 2020 +0200 add ngspice Temperature clipping in HICUM commitd735f445e5Author: Markus Mueller <[email protected]> Date: Sun Jul 26 12:13:39 2020 +0200 removed rbi fallback, removed rth_de commit162b174acdAuthor: dwarning <dwarning> Date: Sat Jul 25 12:31:05 2020 +0200 add few small-signal parameter commit5afb2dc8c8Author: dwarning <dwarning> Date: Fri Jul 24 16:49:11 2020 +0200 reduce unnecassary inits commit0efc047f5fAuthor: dwarning <dwarning> Date: Fri Jul 24 16:03:10 2020 +0200 few typos and comments commit14a5cd873bAuthor: Markus Mueller <[email protected]> Date: Fri Jul 24 11:25:51 2020 +0200 remove rbi stamps if nodes collapsed finish commitf5461183f3Author: Markus Mueller <[email protected]> Date: Fri Jul 24 11:17:33 2020 +0200 hicumL2 load -> remove stamp for rbi, if node BP BI collapsed commit00f51465e3Author: Markus Mueller <[email protected]> Date: Fri Jul 24 11:07:58 2020 +0200 finish cleaning commit019ef4e07eAuthor: Markus Mueller <[email protected]> Date: Fri Jul 24 10:50:05 2020 +0200 moving derivatives from _Tdev to _Vrth in a clean way (start) commit154036c09fAuthor: Markus Mueller <[email protected]> Date: Thu Jul 23 16:50:31 2020 +0200 consistent derivative with Vrth/Tdev=> will rework this, I do not like this commit03c3efd762Author: Markus Mueller <[email protected]> Date: Thu Jul 23 16:22:46 2020 +0200 finally: avalanche at very high T fix commit64704fd53eMerge:a26b3ee2bf6db74ac5Author: Markus Mueller <[email protected]> Date: Thu Jul 23 15:56:29 2020 +0200 Merge remote-tracking branch 'origin/markus_dev' into markus_dev commita26b3ee2b2Author: Markus Mueller <[email protected]> Date: Thu Jul 23 15:56:17 2020 +0200 start bugfix commitf6db74ac50Author: dwarning <dwarning> Date: Tue Jul 21 18:56:32 2020 +0200 rm obsolete files commit9854038f2cAuthor: dwarning <dwarning> Date: Tue Jul 21 16:48:56 2020 +0200 allow periphal resistors and rbi default 0 commit34f579c08fAuthor: Markus Mueller <[email protected]> Date: Tue Jul 21 13:05:54 2020 +0200 fix bug node collapsing BI BP commit6f5627f441Author: Markus Mueller <[email protected]> Date: Tue Jul 21 11:48:22 2020 +0200 node collapsing BI BP HICUM commit187d391383Author: dwarning <dwarning> Date: Tue Jul 21 09:58:59 2020 +0200 few corrections and reordering commit0fc39a424eAuthor: dwarning <dwarning> Date: Mon Jul 20 19:36:15 2020 +0200 unify nqs flag for setup/unsetup commit8944ad2e32Author: Markus Mueller <[email protected]> Date: Sat Jul 18 14:23:30 2020 +0200 iavl_Vbiei changed sign back ... commitcc9682f9e5Author: Markus Mueller <[email protected]> Date: Sat Jul 18 14:05:12 2020 +0200 HICUM limit for avalanche commit284583e0ccAuthor: dwarning <dwarning> Date: Wed Jul 15 10:11:46 2020 +0200 cleanup initial conditions to the traditional spice usage commitc3cadb8de1Author: dwarning <dwarning> Date: Wed Jul 15 08:57:03 2020 +0200 rm unused files commit8bc687ddbeAuthor: dwarning <dwarning> Date: Mon Jul 13 10:44:56 2020 +0200 correct check6 init commit9250464ac1Author: Markus Mueller <[email protected]> Date: Sun Jul 12 14:00:46 2020 +0200 fix bug in HICUM Qjci calculation, derivatives now more rigorous with dual numbers commit0fb86510aaAuthor: Markus Mueller <[email protected]> Date: Sat Jul 11 15:02:04 2020 +0200 fix gmin in HICUM commit735339e288Merge:fd5b7a6481659190b2Author: Markus Mueller <[email protected]> Date: Sat Jul 11 14:45:08 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commitfd5b7a6485Author: Markus Mueller <[email protected]> Date: Sat Jul 11 14:44:01 2020 +0200 fix HICUM gmin commit1659190b21Author: dwarning <dwarning> Date: Sat Jul 11 09:57:29 2020 +0200 real node collapsing with slightly better results in qa test convergence problems in high current avalanche breakdown still exist commitaaa94e5c10Author: dwarning <dwarning> Date: Thu Jul 9 18:10:04 2020 +0200 add hspice to qa commit6fe586cf9dAuthor: dwarning <dwarning> Date: Thu Jul 9 17:26:28 2020 +0200 relax convergence criteria for qa test commit127c2ca451Author: dwarning <dwarning> Date: Thu Jul 9 14:02:48 2020 +0200 correct loop stopping criteria commitcfae080c1aAuthor: dwarning <dwarning> Date: Wed Jul 8 18:02:13 2020 +0200 examples now version 2.4.0 commit7b099242daAuthor: dwarning <dwarning> Date: Wed Jul 8 17:18:28 2020 +0200 rm non qa file commit0c2ef2f7c4Author: dwarning <dwarning> Date: Wed Jul 8 17:15:58 2020 +0200 qa test is now version 2.4.0 commite90939126dAuthor: dwarning <dwarning> Date: Wed Jul 8 17:13:29 2020 +0200 qa test is now version 2.4.0 commit114aeee5c5Author: dwarning <dwarning> Date: Wed Jul 8 17:12:05 2020 +0200 now version 2.4.0 commit0f33776513Author: dwarning <dwarning> Date: Wed Jul 8 11:40:43 2020 +0200 reactivate convergence check commit6f382c76d8Author: dwarning <dwarning> Date: Wed Jul 8 11:02:30 2020 +0200 rm old comments and artefacts commit5950a2fb03Author: Markus Mueller <[email protected]> Date: Wed Jul 8 09:51:03 2020 +0200 example print for dual number commitabab054352Author: dwarning <dwarning> Date: Tue Jul 7 08:51:51 2020 +0200 nqs must set after defaulting model parameters commit4c34e54c7bAuthor: dwarning <dwarning> Date: Mon Jul 6 21:37:04 2020 +0200 prevent false branch because of rounding error for flcomp commit4bb09b35c3Author: dwarning <dwarning> Date: Sun Jul 5 22:16:28 2020 +0200 clear separation between geometry and temperature scaling commit90ab76d876Author: Markus Mueller <[email protected]> Date: Sun Jul 5 18:14:08 2020 +0200 fix comments in HICUM scaling commitd7dd26880cAuthor: Markus Mueller <[email protected]> Date: Sun Jul 5 18:03:23 2020 +0200 forgot some parameters that depend on "area" and T, but are needed as model variables in load commit320a66c0a4Merge:d78032109b09edc706Author: Markus Mueller <[email protected]> Date: Sun Jul 5 17:27:20 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commitd78032109fAuthor: Markus Mueller <[email protected]> Date: Sun Jul 5 17:26:45 2020 +0200 HICUM scaling with "area" and "m" parameters. commitb09edc706aAuthor: dwarning <dwarning> Date: Sun Jul 5 17:10:51 2020 +0200 must fallthrough because icVbe is after icVce commitdbd99a33a5Author: dwarning <dwarning> Date: Sun Jul 5 09:59:09 2020 +0200 some useful examples to show hicum2 capabilities commitba1c2de06eAuthor: Markus Mueller <[email protected]> Date: Sat Jul 4 20:21:38 2020 +0200 added comment to IC vars commit6fce26437eAuthor: Markus Mueller <[email protected]> Date: Sat Jul 4 20:03:13 2020 +0200 remove hicum inital conditions that are not spice-like commitaa283f40efAuthor: Markus Mueller <[email protected]> Date: Sat Jul 4 19:55:58 2020 +0200 added HICUM pole zero analysis commit2165afdf27Author: dwarning <dwarning> Date: Fri Jul 3 17:39:03 2020 +0200 another cut&paste error and typo commit8b680b0c28Author: dwarning <dwarning> Date: Fri Jul 3 17:28:40 2020 +0200 another cut&paste error commitf1698c7a81Author: dwarning <dwarning> Date: Fri Jul 3 15:42:37 2020 +0200 add shot noise sources for it and ibiei commit966891d5f7Author: dwarning <dwarning> Date: Fri Jul 3 14:39:31 2020 +0200 correct multiplier for flicker noise and base-emitter source connection commit80e932424fAuthor: dwarning <dwarning> Date: Fri Jul 3 14:27:52 2020 +0200 cut&paste error commit61ee68c782Author: dwarning <dwarning> Date: Thu Jul 2 21:05:58 2020 +0200 few corrections in noise model commitad16be59baAuthor: Markus Mueller <[email protected]> Date: Wed Jul 1 14:44:13 2020 +0200 reorder code commite81b41c653Author: Markus Mueller <[email protected]> Date: Wed Jul 1 14:33:12 2020 +0200 fix bugs HICHUM acload commit1d5f88e93dAuthor: Markus Mueller <[email protected]> Date: Sun Jun 28 11:51:10 2020 +0200 fix bugs commitbbb729ae8fAuthor: Markus Mueller <[email protected]> Date: Sun Jun 28 11:03:48 2020 +0200 intermediate state commita95aade55aAuthor: Markus Mueller <[email protected]> Date: Sat Jun 27 20:16:37 2020 +0200 fix derivative in NQS network commita54c52221cAuthor: Markus Mueller <[email protected]> Date: Sat Jun 27 20:05:58 2020 +0200 small fixes HICUM commit7407302d50Author: Markus Mueller <[email protected]> Date: Sat Jun 27 17:48:23 2020 +0200 fix bug in HICUMacload commitbb03c8f663Merge:1fa789874e7d143e04Author: Markus Mueller <[email protected]> Date: Wed Jun 24 13:17:15 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commit1fa7898747Author: Markus Mueller <[email protected]> Date: Wed Jun 24 13:16:20 2020 +0200 remove nqs from limit function and gmin commite7d143e044Author: dwarning <dwarning> Date: Tue Jun 23 18:22:40 2020 +0200 tk is not an alias parameter name commit75e3a4da64Author: Markus Mueller <[email protected]> Date: Tue Jun 23 16:24:59 2020 +0200 protect nqs network commit1c36e997baAuthor: Markus Mueller <[email protected]> Date: Tue Jun 23 15:44:46 2020 +0200 nqs in ac commit524abe95f3Author: Markus Mueller <[email protected]> Date: Tue Jun 23 15:21:27 2020 +0200 NQS in acload commit0833f955efAuthor: Markus Mueller <[email protected]> Date: Tue Jun 23 14:47:35 2020 +0200 move cross-coupled charges from state vector to here struct commit03b4a87477Author: dwarning <dwarning> Date: Mon Jun 22 11:52:42 2020 +0200 prevent crash if tnode is given but she parameter not commit9ab20e2f35Author: dwarning <dwarning> Date: Mon Jun 22 11:51:47 2020 +0200 alias for tnom commit3140bedc3fAuthor: Markus Mueller <[email protected]> Date: Sun Jun 21 21:50:39 2020 +0200 fix nqs commit8dfd2e5a4dAuthor: Markus Mueller <[email protected]> Date: Sat Jun 20 18:41:35 2020 +0200 fix HICUM setup commitf6e4bba9e3Author: Markus Mueller <[email protected]> Date: Sat Jun 20 18:40:04 2020 +0200 finish NQS for DC case commit21862cbdb9Author: Markus Mueller <[email protected]> Date: Sat Jun 20 17:55:01 2020 +0200 first test ok ... modify state vector now commit1c5773292eAuthor: Markus Mueller <[email protected]> Date: Sat Jun 20 17:45:57 2020 +0200 first implementation of NQS, not tested commit4fd24db766Author: dwarning <dwarning> Date: Fri Jun 19 22:12:49 2020 +0200 external temp node has number 5 commit8fb3f2ce9aMerge:b7e4c39d85f4085d4aAuthor: Markus Mueller <[email protected]> Date: Fri Jun 19 19:05:31 2020 +0200 Merge remote-tracking branch 'origin/markus_dev' into markus_dev commitb7e4c39d80Author: Markus Mueller <[email protected]> Date: Fri Jun 19 19:03:46 2020 +0200 fix unset t node HICUM commit5f4085d4a8Author: dwarning <dwarning> Date: Wed Jun 17 20:34:02 2020 +0200 unify self-heating switch commitc927c32541Author: Markus Mueller <[email protected]> Date: Wed Jun 17 18:41:15 2020 +0200 qaSpec with ads run commitd05eaa744eAuthor: Markus Mueller <[email protected]> Date: Wed Jun 17 17:38:50 2020 +0200 added derivatives for NQS network commit88cf4bb925Author: dwarning <dwarning> Date: Wed Jun 17 13:24:03 2020 +0200 allow SHE also without external temperature node prevent crash with rth=0 commit7161253342Merge:a46cb231ae2bb25b12Author: Markus Mueller <[email protected]> Date: Tue Jun 16 17:33:41 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commita46cb231a0Author: Markus Mueller <[email protected]> Date: Tue Jun 16 17:32:20 2020 +0200 tmp node to gnd in HICUM if no SH commite2bb25b125Author: dwarning <dwarning> Date: Mon Jun 15 08:54:50 2020 +0200 qaSpec guess for ads commitbbde282b51Author: dwarning <dwarning> Date: Mon Jun 15 08:33:17 2020 +0200 typo 1D commit4e6deec579Merge:5da1d70316fbbeb06dAuthor: Markus Mueller <[email protected]> Date: Sun Jun 14 19:58:33 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commit5da1d7031cAuthor: Markus Mueller <[email protected]> Date: Sun Jun 14 19:57:56 2020 +0200 HICUMload transient part first review, small fixes commit96af16e673Author: Markus Mueller <[email protected]> Date: Sun Jun 14 18:53:49 2020 +0200 gmin fix commit6fbbeb06d9Author: dwarning <dwarning> Date: Sun Jun 14 11:05:12 2020 +0200 complete device node request for temp node commiteae118787eAuthor: Markus Mueller <[email protected]> Date: Sat Jun 13 21:52:32 2020 +0200 fix hicumACload singular matrix bug commit2a1f47e1e5Author: Markus Mueller <[email protected]> Date: Sat Jun 13 20:29:04 2020 +0200 cleaned commit7e5fdae917Author: Markus Mueller <[email protected]> Date: Sat Jun 13 20:19:51 2020 +0200 refactor gmin in HICUM commit7aadd9af4aMerge:f55f613c2595e46447Author: Markus Mueller <[email protected]> Date: Sat Jun 13 19:32:02 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commitf55f613c24Author: Markus Mueller <[email protected]> Date: Sat Jun 13 19:31:39 2020 +0200 added dual numbers include in ngspice/include commit595e464479Author: dwarning <dwarning> Date: Fri Jun 12 19:13:26 2020 +0200 introduce version parameter to prevent warnings in qa test commit147bf5eb4aAuthor: dwarning <dwarning> Date: Fri Jun 12 17:16:48 2020 +0200 use standard include path configuration for external cppduals commit7a41174b5eAuthor: dwarning <dwarning> Date: Thu Jun 11 18:22:42 2020 +0200 add ads for qa test commit3942fc48ceAuthor: Markus Mueller <[email protected]> Date: Thu Jun 11 17:40:13 2020 +0200 added charges for SHE in HICUMacload commit12fa8a8cf7Author: dwarning <dwarning> Date: Thu Jun 11 15:34:06 2020 +0200 resolve confusing naming of instance parameter structure commit7578aec2a8Author: dwarning <dwarning> Date: Thu Jun 11 15:29:40 2020 +0200 introduce version parameter to prevent warnings in qa test commitb401428cddAuthor: Markus Mueller <[email protected]> Date: Wed Jun 10 18:17:44 2020 +0200 minor cleaning commit5d28b97fb5Author: Markus Mueller <[email protected]> Date: Sun Jun 7 16:46:21 2020 +0200 added SHE stamps for DC currents in HICUMacload commit9737dc7a5bAuthor: Markus Mueller <[email protected]> Date: Sun Jun 7 16:36:36 2020 +0200 HICUM acload initial review commit6eefe34d56Author: Markus Mueller <[email protected]> Date: Sun Jun 7 13:58:24 2020 +0200 add real part of AC matrix commit55e14e62e7Author: Markus Mueller <[email protected]> Date: Sun Jun 7 13:20:12 2020 +0200 dirty fix iavl commit99a21e9f61Author: Markus Mueller <[email protected]> Date: Sun Jun 7 12:15:39 2020 +0200 some minor modificaitons, avalanche current problems commit99f8c9a9edMerge:17898981c6b9f5647cAuthor: Markus Mueller <[email protected]> Date: Fri Jun 5 10:27:08 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commit17898981cdAuthor: Markus Mueller <[email protected]> Date: Fri Jun 5 10:20:21 2020 +0200 minor cleaning, fix derivative iavl commit6b9f5647caAuthor: dwarning <dwarning> Date: Thu Jun 4 18:23:10 2020 +0200 first version for cmc qa check commit3f11d38774Author: Markus Mueller <[email protected]> Date: Thu Jun 4 16:37:09 2020 +0200 implemented experimental rth direct evaluation commit40900da8bfAuthor: Markus Mueller <[email protected]> Date: Thu Jun 4 14:45:12 2020 +0200 small correction commit7f1493bddbAuthor: Markus Mueller <[email protected]> Date: Wed Jun 3 19:25:35 2020 +0200 minor changes, cleaning commit55367a44a5Author: Markus Mueller <[email protected]> Date: Wed Jun 3 19:05:39 2020 +0200 completed all del voltages commitd32ff77aefAuthor: Markus Mueller <[email protected]> Date: Wed Jun 3 18:23:19 2020 +0200 renaming variables for cleaner code commite4b4978368Author: Markus Mueller <[email protected]> Date: Wed Jun 3 18:17:49 2020 +0200 adding derivatives of branches with respect to Vrth to the state vector commita6b39a749cAuthor: Markus Mueller <[email protected]> Date: Wed Jun 3 17:29:37 2020 +0200 correct Temperature update commit55c33ad675Author: Markus Mueller <[email protected]> Date: Wed Jun 3 17:21:31 2020 +0200 before changing Temp in load commit7f7b31e5c0Author: Markus Mueller <[email protected]> Date: Tue Jun 2 20:01:07 2020 +0200 fixing small bugs commit7555278074Author: Markus Mueller <[email protected]> Date: Tue Jun 2 19:39:48 2020 +0200 fixed some stamps commit0d59e12518Author: Markus Mueller <[email protected]> Date: Tue Jun 2 19:13:50 2020 +0200 fixed avalanche commitee25c6ce42Author: Markus Mueller <[email protected]> Date: Mon Jun 1 20:07:25 2020 +0200 cleaned up commitd61b510207Author: Markus Mueller <[email protected]> Date: Mon Jun 1 19:18:45 2020 +0200 hicumL2 load routine seems to be working, next ac? commit29a61f21e2Merge:c94120cbfdcf4a4487Author: Markus Mueller <[email protected]> Date: Mon Jun 1 14:32:39 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commitc94120cbf9Author: Markus Mueller <[email protected]> Date: Mon Jun 1 14:30:40 2020 +0200 first hicum convergence with SH commitdcf4a44871Merge:c37a88becc1444a06bAuthor: dwarning <dwarning> Date: Mon Jun 1 10:57:42 2020 +0200 Merge branch 'markus_dev' of ssh://git.code.sf.net/p/ngspice/ngspice into markus_dev commitc37a88bec8Author: dwarning <dwarning> Date: Mon Jun 1 10:56:53 2020 +0200 set the cppduals include folder above ngspice dir commitc1444a06b6Author: Markus Mueller <[email protected]> Date: Sun May 31 20:38:16 2020 +0200 finish hicum SH review, next testing. commite3c194e050Author: Markus Mueller <[email protected]> Date: Sun May 31 20:26:41 2020 +0200 fixed some stamps, improved code readability, temp stamps corrected commit59c50d5095Author: Markus Mueller <[email protected]> Date: Sat May 30 20:37:28 2020 +0200 fixed rbi stamp, convergence looks pretty good DC no SH commitf7012280e6Author: Markus Mueller <[email protected]> Date: Sat May 30 17:12:37 2020 +0200 fix rbi convergence commit326b29c4d8Author: Markus Mueller <[email protected]> Date: Fri May 29 16:54:30 2020 +0200 started work on self heating commit4994feaa2bAuthor: Markus Mueller <[email protected]> Date: Fri May 29 16:08:18 2020 +0200 corrected rbi stamp... commit460e7ec04bAuthor: mariok <[email protected]> Date: Wed May 20 11:22:01 2020 +0200 more thermal stuff implemented commit194331867eAuthor: mariok <[email protected]> Date: Tue May 19 16:24:34 2020 +0200 added HICUMtempCollPtr HICUMtempBasePtr HICUMtempEmitPtr commit697af41531Author: dwarning <dwarning> Date: Tue May 19 08:03:35 2020 +0200 exchange hicum2temp file in VS project commit03750cd24eAuthor: Markus Mueller <[email protected]> Date: Sun May 17 20:20:00 2020 +0200 ziwschenstand, checked code for maths errors commit418966c6e5Author: mariok <[email protected]> Date: Wed May 13 10:25:49 2020 +0200 can not call a function inside a comparision commitabecd18651Author: mariok <[email protected]> Date: Wed May 13 10:09:11 2020 +0200 removed all buggs from hicumL2 to debug. commit1fe3cc8b12Merge:afdffacd458f66c1d4Author: mariok <[email protected]> Date: Wed May 13 07:30:56 2020 +0200 Merge remote-tracking branch 'origin/markus_dev' into hicum2-mario commitafdffacd4bAuthor: mariok <[email protected]> Date: Tue May 12 19:59:09 2020 +0200 ac und pz load commit890ccc415fAuthor: mariok <[email protected]> Date: Tue May 12 19:55:23 2020 +0200 implemented hicum_diode as example commit63bf7113d4Author: mariok <[email protected]> Date: Tue May 12 18:33:51 2020 +0200 all temperature scaling equations done using dual numbers commit96c66dd645Author: mariok <[email protected]> Date: Tue May 12 17:14:17 2020 +0200 started dual numbers in hicum2temp and a transfer struct in hicum2defs commit58f66c1d46Author: Markus Mueller <[email protected]> Date: Tue May 12 12:28:50 2020 +0200 fix Vbe initialization commit35deffa742Author: Markus Mueller <[email protected]> Date: Tue May 12 12:25:48 2020 +0200 cleaned further commit304dd91f58Author: Markus Mueller <[email protected]> Date: Tue May 12 12:15:52 2020 +0200 cleaned up, small fixes, include Tf commit1d7da49e27Author: Markus Mueller <[email protected]> Date: Tue May 12 09:37:39 2020 +0200 fixed bugs commit479c2a19eaAuthor: Markus Mueller <[email protected]> Date: Mon May 11 15:50:01 2020 +0200 forgot Nan catcher commit5bbe0f9cf7Author: Markus Mueller <[email protected]> Date: Mon May 11 15:48:03 2020 +0200 bugfix Q_p calculation commit67857cf983Author: Markus Mueller <[email protected]> Date: Mon May 11 15:42:27 2020 +0200 fixed derivatives and itf for case without newton iteration commitd6ee2c206eAuthor: Markus Mueller <[email protected]> Date: Mon May 11 14:08:18 2020 +0200 resolved some un-initialized variables commit76ed5cb36aAuthor: Markus Mueller <[email protected]> Date: Sun May 10 20:48:38 2020 +0200 finished clean commitba6e6d5e49Author: Markus Mueller <[email protected]> Date: Sun May 10 18:48:24 2020 +0200 added all remaining hicum l2 elements commit36244b809aAuthor: Markus Mueller <[email protected]> Date: Sun May 10 17:45:27 2020 +0200 resolved Dietmar comments from email commiteaa5be9716Author: Markus Mueller <[email protected]> Date: Tue May 5 16:38:08 2020 +0200 added base emitter recombination current and derivatives commit4318b7165bAuthor: Markus Mueller <[email protected]> Date: Tue May 5 14:30:15 2020 +0200 added initial conditions for all nodes, model converging again for simple modelcard commit3008c526bfAuthor: mariok <[email protected]> Date: Mon May 4 19:00:31 2020 +0200 removed QpT and testing only 1 OP commit9cb4c1546fAuthor: mariok <[email protected]> Date: Mon May 4 18:37:52 2020 +0200 icVBE and icVCE used for DC commit8a73697675Author: mariok <[email protected]> Date: Mon May 4 18:03:46 2020 +0200 fixed dual number Q_0_hjei_vbe commit5783938b08Author: mariok <[email protected]> Date: Mon May 4 16:30:41 2020 +0200 reintroduced dtemp as instance parameter commit9350f3f3beAuthor: dwarning <dwarning> Date: Sun May 3 17:25:12 2020 +0200 Revert some namings commit197f6db83bAuthor: dwarning <dwarning> Date: Sat May 2 23:18:58 2020 +0200 Adapt VS project to C++ commitaf32f79641Author: dwarning <dwarning> Date: Sat May 2 23:18:43 2020 +0200 Skip NQS effekt and revert some namings commita995aa0cceAuthor: dwarning <dwarning> Date: Sat May 2 23:18:27 2020 +0200 Skip NQS effekt commitd7295cbe78Merge:2502b57ee6ca440e58Author: Markus Mueller <[email protected]> Date: Wed Apr 29 19:04:32 2020 +0200 Merge branch 'markus_dev' of https://git.code.sf.net/p/ngspice/ngspice into markus_dev commit2502b57eeeAuthor: Markus Mueller <[email protected]> Date: Wed Apr 29 19:03:26 2020 +0200 added quests, derivative vciei changed to vbiei vbici commit6ca440e584Author: dwarning <dwarning> Date: Wed Apr 29 09:35:12 2020 +0200 add hicumL2.cpp instead of hicum2load.c in VS project commit6e98506a7fAuthor: dwarning <dwarning> Date: Wed Apr 29 09:33:08 2020 +0200 cmath seems not to have M_PI commitd6332815b3Author: Markus Mueller <[email protected]> Date: Tue Apr 28 20:58:35 2020 +0200 derivatives it looking good commitaaaace7247Author: Markus Mueller <[email protected]> Date: Tue Apr 28 19:39:48 2020 +0200 adding hicum derivatives like a mad-man commit2d8a3e3629Author: Markus Mueller <[email protected]> Date: Tue Apr 28 18:44:46 2020 +0200 added Q_pT and derivatives...fun commit50a3e372cfAuthor: Markus Mueller <[email protected]> Date: Tue Apr 28 17:17:17 2020 +0200 starting work on transfer current commit8fd70e2f15Author: Markus Mueller <[email protected]> Date: Tue Apr 28 13:01:18 2020 +0200 added asks, found bug with ibci commit2baac89ae3Merge:97a0aa856c897e60c8Author: Markus Mueller <[email protected]> Date: Mon Apr 27 20:47:06 2020 +0200 Merge remote-tracking branch 'origin/hicum2-thermal' into markus_dev commitc897e60c8bAuthor: mariok <[email protected]> Date: Mon Apr 27 18:12:40 2020 +0200 pointer in ask commit3b0551c544Author: mariok <[email protected]> Date: Mon Apr 27 17:36:19 2020 +0200 two small bugfixes commitb02c763ed1Author: mariok <[email protected]> Date: Mon Apr 27 17:13:30 2020 +0200 HICUM2ask done according to VA-Code commit97a0aa856bMerge:afbde8050d86caadb0Author: Markus Mueller <[email protected]> Date: Mon Apr 27 16:22:32 2020 +0200 Merge remote-tracking branch 'origin/hicum2-thermal' into markus_dev commitafbde80500Author: Markus Mueller <[email protected]> Date: Mon Apr 27 16:21:25 2020 +0200 zwischenstand commitd86caadb07Author: mariok <[email protected]> Date: Thu Apr 23 18:23:40 2020 +0200 added nodes for NQS commit1b0cf0d08cAuthor: mariok <[email protected]> Date: Thu Apr 23 16:59:55 2020 +0200 testing with and without self heating commit64c0c41180Merge:9da946bf20d0c6a080Author: mariok <[email protected]> Date: Thu Apr 23 16:29:18 2020 +0200 Merge branch 'markus_dev' into hicum2-thermal commit0d0c6a0800Author: mariok <[email protected]> Date: Thu Apr 23 16:26:37 2020 +0200 assigned the temperature derivates to me commit1b00fad771Merge:f5a1c35d8dc7891f7bAuthor: mariok <[email protected]> Date: Thu Apr 23 14:16:32 2020 +0200 Merge branch 'markus_dev' of ssh://git.code.sf.net/p/ngspice/ngspice into markus_dev commitf5a1c35d80Author: mariok <[email protected]> Date: Thu Apr 23 14:14:40 2020 +0200 removed dummdumm commitdc7891f7b5Author: Markus Mueller <[email protected]> Date: Mon Apr 20 19:16:36 2020 +0200 added more junction caps, checklist and overview commit0dbf31bc73Author: Markus Mueller <[email protected]> Date: Mon Apr 20 19:00:16 2020 +0200 derivatives rbi commit330d009fa6Author: Markus Mueller <[email protected]> Date: Mon Apr 20 18:40:24 2020 +0200 more derivatives avalanche current, ibcis commitce200d75e3Author: Markus Mueller <[email protected]> Date: Mon Apr 20 18:05:49 2020 +0200 derivatives peripheral junction caps, diodes commit8ce9733f91Author: Markus Mueller <[email protected]> Date: Mon Apr 20 17:45:42 2020 +0200 derivatives tunneling current commit806ff80138Author: Markus Mueller <[email protected]> Date: Mon Apr 20 17:17:14 2020 +0200 derivatives critical current commit8f49490cecAuthor: Markus Mueller <[email protected]> Date: Mon Apr 20 16:59:09 2020 +0200 derivatives T_f0 commit3164dbe594Author: Markus Mueller <[email protected]> Date: Mon Apr 20 16:38:34 2020 +0200 derivatives hole charge at low bias commitb32bf6dd14Author: Markus Mueller <[email protected]> Date: Mon Apr 20 16:27:38 2020 +0200 zwischenstand commit84307c4acfAuthor: Markus Mueller <[email protected]> Date: Mon Apr 20 16:19:25 2020 +0200 zwischenstand commit0d94c5d56dAuthor: mariok <[email protected]> Date: Mon Apr 20 10:56:58 2020 +0200 moved cppduals to system lib include commit9da946bf2dAuthor: mariok <[email protected]> Date: Mon Apr 20 09:59:49 2020 +0200 started derivatives of hicum2 minority charge commita2946e98a4Author: Markus Mueller <[email protected]> Date: Mon Apr 20 09:56:06 2020 +0200 introduced dual numbers, ported hiucm2load to c++ hicumL2.cpp, boolean type protected by extern "C" commitc7e5df27dbAuthor: mariok <[email protected]> Date: Thu Apr 16 14:44:41 2020 +0200 DC runs with Ixf commit08a0e6a019Author: mariok <[email protected]> Date: Wed Apr 15 18:15:26 2020 +0200 gummel works with flsh = 1 and flnqs = 0 commitb83e05ee95Author: mariok <[email protected]> Date: Tue Apr 14 16:09:42 2020 +0200 added test to makefile commit7d29a9a269Author: mariok <[email protected]> Date: Tue Apr 14 10:06:27 2020 +0200 test circuit and results commit14c46bc3bdAuthor: mariok <[email protected]> Date: Mon Apr 13 18:12:06 2020 +0200 cleaned renaming in all files commit67ddd98f75Author: dwarning <dwarning> Date: Wed Jan 29 13:08:02 2020 +0100 rename commit9551b6df92Author: dwarning <dwarning> Date: Wed Jan 29 13:07:42 2020 +0100 rename commit12bb866ba5Author: dwarning <dwarning> Date: Wed Jan 29 13:06:45 2020 +0100 rename commit414eeb4067Author: dwarning <dwarning> Date: Tue Jan 28 22:18:08 2020 +0100 clarify charge and capacitance implementation commitc318ef15eeAuthor: dwarning <dwarning> Date: Sat Jan 25 14:57:55 2020 +0100 introduce first excess phase network and update to 2.4.0 commit85c34cfb0fAuthor: dwarning <dwarning> Date: Wed Jan 22 18:16:54 2020 +0100 VS update commit86ff2778f8Author: dwarning <dwarning> Date: Wed Jan 22 18:16:29 2020 +0100 OP infos commit1607f4d88cAuthor: dwarning <dwarning> Date: Wed Jan 22 18:16:19 2020 +0100 OP infos commitca1e114922Author: dwarning <dwarning> Date: Wed Jan 22 18:16:11 2020 +0100 OP infos commit408440d33bAuthor: dwarning <dwarning> Date: Tue Jan 21 11:25:56 2020 +0100 some cleanings commit3364f6da87Author: dwarning <dwarning> Date: Tue Jan 14 09:55:58 2020 +0100 VS update commit6fbefe4afaAuthor: dwarning <dwarning> Date: Tue Jan 14 09:55:48 2020 +0100 Ongoing derivations commit86521dd7c0Author: dwarning <dwarning> Date: Tue Jan 14 09:02:52 2020 +0100 VS update commitba5b106faeAuthor: dwarning <dwarning> Date: Tue Jan 14 09:01:30 2020 +0100 Ongoing derivations commitea6254eca3Author: dwarning <dwarning> Date: Sat Jan 11 17:17:21 2020 +0100 Initial HICUM2 integration commit2bd0f1bdabAuthor: dwarning <dwarning> Date: Mon Jan 6 00:11:48 2020 +0100 Initial HICUM2 integration commit7d160f659eAuthor: dwarning <dwarning> Date: Sun Jan 5 15:01:20 2020 +0100 Initial HICUM2 integration commit420ca90e55Author: dwarning <dwarning> Date: Sun Jan 5 15:00:06 2020 +0100 Initial HICUM2 integration
245 lines
7.7 KiB
C++
245 lines
7.7 KiB
C++
//===-- bench_gemm - benchmark dual m*m -----------------------*- C++ -*-===//
|
|
//
|
|
// Part of the cppduals Project
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
// (c)2019 Michael Tesch. [email protected]
|
|
//
|
|
#if defined(__APPLE__) && defined(__clang__)
|
|
#include <Accelerate/Accelerate.h>
|
|
|
|
#else
|
|
|
|
#ifdef EIGEN_LAPACKE
|
|
#include <Eigen/src/misc/lapacke.h>
|
|
#else
|
|
#include <lapacke.h>
|
|
#endif
|
|
|
|
extern "C" {
|
|
//#include <cblas.h>
|
|
//#include <cblas_openblas.h>
|
|
#include CBLAS_HEADER
|
|
}
|
|
#endif // defined(__APPLE__) && defined(__clang__)
|
|
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <complex>
|
|
#include <memory>
|
|
|
|
#include "type_name.hpp"
|
|
#include <duals/dual_eigen>
|
|
#include <Eigen/Core>
|
|
#include <Eigen/Dense>
|
|
|
|
#include "benchmark/benchmark.h"
|
|
|
|
using namespace duals;
|
|
|
|
template< class T > struct type_identity { typedef T type; };
|
|
|
|
#include <unsupported/Eigen/MatrixFunctions>
|
|
|
|
|
|
/* encode the type into an integer for benchmark output */
|
|
template<typename Tp> struct type_num { /* should fail */ };
|
|
template<> struct type_num<float> { static constexpr int id = 1; };
|
|
template<> struct type_num<double> { static constexpr int id = 2; };
|
|
template<> struct type_num<long double> { static constexpr int id = 3; };
|
|
template<typename Tp> struct type_num<std::complex<Tp>> { static constexpr int id = 10 + type_num<Tp>::id; };
|
|
template<typename Tp> struct type_num<duals::dual<Tp>> { static constexpr int id = 100 + type_num<Tp>::id; };
|
|
|
|
using duals::dualf;
|
|
using duals::duald;
|
|
typedef std::complex<double> complexd;
|
|
typedef std::complex<float> complexf;
|
|
typedef std::complex<duald> cduald;
|
|
typedef std::complex<dualf> cdualf;
|
|
template <class T> using MatrixX = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>;
|
|
|
|
#if 0
|
|
#define V_RANGE(V,NF) ->Arg(V*4/NF)->Arg(V*32/NF)->Arg(V*256/NF)->Arg(V*2048/NF)->Arg(V*1)->Complexity()
|
|
#else
|
|
#define V_RANGE(V,NF) ->Arg(V*64/NF)->Arg(V*128/NF)->Arg(V*256/NF)->Arg(V*512/NF)->Arg(V*1024/NF) ->Arg(V*2048/NF)
|
|
#endif
|
|
|
|
// measure Eigen's matrix-matrix multiplication
|
|
template <class T, class U> void B_MatMat(benchmark::State& state) {
|
|
int N = state.range(0);
|
|
typedef typename Eigen::ScalarBinaryOpTraits<T, U>::ReturnType R;
|
|
MatrixX<T> A = MatrixX<T>::Random(N, N);
|
|
MatrixX<U> B = MatrixX<U>::Random(N, N);
|
|
MatrixX<R> C = MatrixX<R>::Random(N, N);
|
|
for (auto _ : state) {
|
|
C.noalias() = A * B;
|
|
benchmark::ClobberMemory(); // Force c to be written to memory.
|
|
}
|
|
|
|
state.SetComplexityN(state.range(0));
|
|
}
|
|
|
|
template <class T, typename std::enable_if<!duals::is_dual<T>::value>::type* = nullptr>
|
|
void matrix_multiplcation(T *A, int Awidth, int Aheight,
|
|
T *B, int Bwidth, int Bheight,
|
|
T *AB, bool tA, bool tB,
|
|
typename type_identity<T>::type beta)
|
|
{
|
|
int A_height = tA ? Awidth : Aheight;
|
|
int A_width = tA ? Aheight : Awidth;
|
|
#ifndef NDEBUG
|
|
int B_height = tB ? Bwidth : Bheight;
|
|
#endif
|
|
int B_width = tB ? Bheight : Bwidth;
|
|
int m = A_height;
|
|
int n = B_width;
|
|
int k = A_width;
|
|
// Error, width and height should match!
|
|
assert(A_width == B_height);
|
|
int lda = tA ? m : k;
|
|
int ldb = tB ? k : n;
|
|
#define TRANSPOSE(X) ((X) ? CblasTrans : CblasNoTrans)
|
|
// http://www.netlib.org/lapack/explore-html/d7/d2b/dgemm_8f.html
|
|
if (!is_complex<T>::value) {
|
|
if (sizeof(T) == sizeof(float))
|
|
cblas_sgemm(CblasColMajor, TRANSPOSE(tA), TRANSPOSE(tB),
|
|
m, n, k, 1.0, (float *)A, lda, (float *)B, ldb,
|
|
std::real(beta), (float *)AB, n);
|
|
else
|
|
cblas_dgemm(CblasColMajor, TRANSPOSE(tA), TRANSPOSE(tB),
|
|
m, n, k, 1.0, (double *)A, lda, (double *)B, ldb,
|
|
std::real(beta), (double *)AB, n);
|
|
}
|
|
else {
|
|
std::complex<float> alphaf(1,0);
|
|
std::complex<double> alpha(1,0);
|
|
if (Eigen::NumTraits<T>::digits10() < 10)
|
|
cblas_cgemm(CblasColMajor, TRANSPOSE(tA), TRANSPOSE(tB),
|
|
m, n, k, &alphaf, A, lda, B, ldb, &beta, AB, n);
|
|
else
|
|
cblas_zgemm(CblasColMajor, TRANSPOSE(tA), TRANSPOSE(tB),
|
|
m, n, k, &alpha, A, lda, B, ldb, &beta, AB, n);
|
|
}
|
|
#undef TRANSPOSE
|
|
}
|
|
|
|
template <class T, typename std::enable_if<duals::is_dual<T>::value>::type* = nullptr>
|
|
void matrix_multiplcation(T *A, int Awidth, int Aheight,
|
|
T *B, int Bwidth, int Bheight,
|
|
T *AB, bool tA, bool tB,
|
|
typename type_identity<T>::type beta)
|
|
{ /* nothing */
|
|
}
|
|
|
|
// measure BLAS matrix-matrix multiplication
|
|
template <class Rt> void B_MatMatBLAS(benchmark::State& state) {
|
|
int N = state.range(0);
|
|
MatrixX<Rt> A = MatrixX<Rt>::Random(N, N);
|
|
MatrixX<Rt> B = MatrixX<Rt>::Random(N, N);
|
|
MatrixX<Rt> C = MatrixX<Rt>::Random(N, N);
|
|
MatrixX<Rt> D = A*B;
|
|
for (auto _ : state) {
|
|
matrix_multiplcation(A.data(), A.cols(), A.rows(),
|
|
B.data(), B.cols(), B.rows(),
|
|
C.data(), false, false, (Rt)0.);
|
|
benchmark::ClobberMemory(); // Force a to be written to memory.
|
|
}
|
|
|
|
double err = (double)rpart((D - C).norm() / D.norm());
|
|
if (err > 1e-6)
|
|
state.SkipWithError("BLAS matmat error");
|
|
|
|
state.SetComplexityN(state.range(0));
|
|
}
|
|
|
|
// measure compiler's matrix-matrix multiplication
|
|
template <class Rt, class U> void B_MatMatCXX(benchmark::State& state) {
|
|
int N = state.range(0);
|
|
std::vector<Rt> a(N*N);
|
|
std::vector<Rt> b(N*N);
|
|
std::vector<Rt> c(N*N);
|
|
|
|
for (auto _ : state) {
|
|
state.PauseTiming();
|
|
a.assign(N*N,1.1);
|
|
b.assign(N*N,2.2);
|
|
c.assign(N*N,0.);
|
|
state.ResumeTiming();
|
|
|
|
for(int i=0; i<N; ++i)
|
|
for(int j=0; j<N; ++j)
|
|
for(int k=0; k<N; ++k)
|
|
c[i*N+j] += a[i*N+k] * b[k*N+j];
|
|
|
|
benchmark::ClobberMemory(); // Force a to be written to memory.
|
|
}
|
|
|
|
state.SetComplexityN(state.range(0));
|
|
}
|
|
|
|
// measure eigen's matrix-vector multiplication
|
|
template <class Rt, class U> void B_MatVec(benchmark::State& state) {
|
|
int N = state.range(0);
|
|
MatrixX<Rt> A = MatrixX<Rt>::Random(N, N);
|
|
MatrixX<Rt> b = MatrixX<Rt>::Random(N, 1);
|
|
MatrixX<Rt> c = MatrixX<Rt>::Random(N, 1);
|
|
for (auto _ : state) {
|
|
c = A * b;
|
|
benchmark::ClobberMemory();
|
|
}
|
|
|
|
state.counters["type"] = type_num<Rt>::id;
|
|
state.SetComplexityN(state.range(0));
|
|
}
|
|
|
|
|
|
#define MAKE_BM_SIMPLE(TYPE1,TYPE2,NF) \
|
|
BENCHMARK_TEMPLATE(B_MatMat, TYPE1,TYPE2) V_RANGE(1,NF)
|
|
|
|
#define MAKE_BENCHMARKS(TYPE1,TYPE2,NF) \
|
|
MAKE_BM_SIMPLE(TYPE1,TYPE2,NF); \
|
|
BENCHMARK_TEMPLATE(B_MatMatBLAS, TYPE1) V_RANGE(1,NF)
|
|
|
|
// BENCHMARK_TEMPLATE(B_MatMatBLAS, TYPE1) V_RANGE(1,2*NF);
|
|
// BENCHMARK_TEMPLATE(B_VecVecMulCXX, TYPE1,TYPE2) V_RANGE(4,NF);
|
|
// BENCHMARK_TEMPLATE(B_MatMatCXX, TYPE1,TYPE2) V_RANGE(1,NF);
|
|
|
|
MAKE_BENCHMARKS(float, float, 1);
|
|
MAKE_BENCHMARKS(complexf, complexf,2);
|
|
//MAKE_BM_SIMPLE(dualf, float,2); TODO
|
|
MAKE_BM_SIMPLE(dualf, dualf,2);
|
|
//MAKE_BM_SIMPLE(cdualf, cdualf,2);
|
|
MAKE_BM_SIMPLE(cdualf, cdualf,4);
|
|
|
|
#if HAVE_BOOST
|
|
#include <audi/audi.hpp>
|
|
MAKE_BM_SIMPLE(audi::gdual<float>,2);
|
|
#endif
|
|
|
|
// novelty:
|
|
//MAKE_BM_SIMPLE(float, complexf,2);
|
|
//MAKE_BM_SIMPLE(complexf, float,2);
|
|
|
|
MAKE_BENCHMARKS(double, double, 1);
|
|
MAKE_BENCHMARKS(complexd, complexd,2);
|
|
MAKE_BM_SIMPLE(duald, duald,2);
|
|
MAKE_BM_SIMPLE(cduald, cduald,4);
|
|
|
|
#define QUOTE(...) STRFY(__VA_ARGS__)
|
|
#define STRFY(...) #__VA_ARGS__
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
#ifndef EIGEN_VECTORIZE
|
|
static_assert(false, "no vectorization?");
|
|
#endif
|
|
#ifndef NDEBUG
|
|
static_assert(false, "NDEBUG to benchmark?");
|
|
#endif
|
|
std::cout << "OPT_FLAGS=" << QUOTE(OPT_FLAGS) << "\n";
|
|
std::cout << "INSTRUCTIONSET=" << Eigen::SimdInstructionSetsInUse() << "\n";
|
|
::benchmark::Initialize(&argc, argv);
|
|
::benchmark::RunSpecifiedBenchmarks();
|
|
}
|