Skip to content
  • Samuel Rowlinson's avatar
    Improving storage of changing ABCD expressions in workspaces, fixing final known cy_expr bugs · d9411b07
    Samuel Rowlinson authored
    Now storing changing ABCD element expressions in relevant workspaces based on apriori
    knowledge. For example, we know that only the C element of Mirror ABCD matrices can
    change so only the C element changing expressions are stored and updated (if they
    are indeed changing).
    
    Cleaned up the way ABCD matrices get stored in the components themselves. Now only keeping
    a single reference to each numpy array where relevant - e.g. Lens now stores just has
    directions as keys in its _abcd_matrices dict as both forward & backward propagations
    give the same matrix. This just makes dealing with this stuff easier in the C code when
    considering views and pointers to each matrix.
    d9411b07