1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 <2020> 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 <2020> 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: matrix multiplication and inversions |
From: | Matt Rippa via Tech-talk <tech-talk at aps.anl.gov> |
To: | "Johnson, Andrew N." <anj at anl.gov> |
Cc: | tech-talk <tech-talk at aps.anl.gov> |
Date: | Fri, 21 Feb 2020 17:31:27 -1000 |
About 25 years ago (wow, was it really?) John Maclean and I devised the controls for the Gemini primary mirror where the IOC did various matrix calculations before passing the results to the dynamic support system actuators via CANbus. We did the maths in subroutine record sub’s using shared global variables to store the small number of large matrices we had to handle, and only used the sub-records to control when the calculations were executed (and to hold scalar parameters and results). We also used waveform records with “devSymb” device support to read and write the shared global variables, although I don’t remember how we synchronized everything to prevent races. The aSub didn’t exist at the time, although Gemini did soon devise the genSub that was its precursor.