Menu

#554 Enable complex numbers

v1.1.x
closed
None
v1.1.4
New Functionality
2022-01-18
2020-12-10
Erik Hänel
No

Enable complex numbers as variable data types. Might be implemented by only supporting complex numbers and representing real-only complex numbers as doubles.

Analysis:

This is a multi-step approach:

  • Transform all doubles in direct contact with mu::Parser::Eval() to mu::value_type.
  • Change the typedef double value_type to typedef std::complex<double> value_type
  • Resolve all compiler errors
  • Create overloads for specific functions
  • Update value printers (Kernel, Debugger)
  • Update variable type handlers (Debugger, Variable viewer, list var)
  • Tables are kept double for now, clusters will get updated

Implementation:

  • Implementation: The implementation was processed as proposed by the analysis.
  • Revision: [r943]
  • Implementation test: Complex numbers were added to the automatic SW tests.

Documentation:

  • [x] ChangesLog updated
  • [x] Code changes commented
  • Documentation articles:
    • [x] corresponding documentation articles updated
    • [ ] new documentation articles created
    • [ ] not needed
  • Language files:
    • [x] corresponding language files updated
    • [ ] not needed

Tests:

Complex numbers are part of the automatic SW test. However, some functions might not yield correct results, if complex numbers are inserted into them. This will be fixed over time.

Related

Commit: [r943]
Tickets: #601
Tickets: #616

Discussion

  • Erik Hänel

    Erik Hänel - 2021-07-06
    • Version: Planned --> v1.1.4
     
  • Erik Hänel

    Erik Hänel - 2021-07-28
    • status: open --> accepted
     
  • Erik Hänel

    Erik Hänel - 2021-07-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1 +1,23 @@
     Enable complex numbers as variable data types. Might be implemented by only supporting complex numbers and representing real-only complex numbers as `double`s.
    +
    +###Analysis:
    +(*Describe, what&#39;s the issue and which changes have to be made*)
    +
    +###Implementation:
    +* Implementation: (*Describe, what you&#39;ve changed*) 
    +* Revision: [rXXX]
    +* Implementation test: (*Describe the type of test, which you performed, and if it was successful*)
    +
    +###Documentation:
    +* [ ] ChangesLog updated
    +* [ ] Code changes commented
    +* **Documentation articles:**
    
    +    * [ ] corresponding documentation articles updated
    +    * [ ] new documentation articles created
    +    * [ ] not needed
    +* **Language files:**
    +    * [ ] corresponding language files updated
    +    * [ ] not needed
    +
    +###Tests:
    +(*Describe, which tests you performed and their outcome*)
    
    • status: accepted --> analyzing
     
  • Erik Hänel

    Erik Hänel - 2021-07-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,7 +1,15 @@
     Enable complex numbers as variable data types. Might be implemented by only supporting complex numbers and representing real-only complex numbers as `double`s.
    
     ###Analysis:
    -(*Describe, what&#39;s the issue and which changes have to be made*)
    +This is a multi-step approach:
    +
    +* Transform all `doubles` in direct contact with `mu::Parser::Eval()` to `mu::value_type`.
    +* Change the `typedef double value_type` to `typedef std::complex&lt;double&gt; value_type`
    +* Resolve all compiler errors
    +* Create overloads for specific functions
    +* Update value printers (Kernel, Debugger)
    +* Update variable type handlers (Debugger, Variable viewer, list var)
    +* Tables are kept `double` for now, clusters will get updated
    
     ###Implementation:
    
     * Implementation: (*Describe, what you&#39;ve changed*) 
    
    • status: analyzing --> implementing
     
  • Erik Hänel

    Erik Hänel - 2021-08-06
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -12,19 +12,19 @@
    
     * Tables are kept `double` for now, clusters will get updated
    
     ###Implementation:
    -* Implementation: (*Describe, what you&#39;ve changed*) 
    -* Revision: [rXXX]
    -* Implementation test: (*Describe the type of test, which you performed, and if it was successful*)
    +* Implementation: The implementation was processed as proposed by the analysis.
    +* Revision: [r943]
    +* Implementation test: Complex numbers were added to the automatic SW tests.
    
     ###Documentation:
    -* [ ] ChangesLog updated
    -* [ ] Code changes commented
    +* [x] ChangesLog updated
    +* [x] Code changes commented
    
     * **Documentation articles:**
    -    * [ ] corresponding documentation articles updated
    +    * [x] corresponding documentation articles updated
         * [ ] new documentation articles created
         * [ ] not needed
     * **Language files:**
    -    * [ ] corresponding language files updated
    +    * [x] corresponding language files updated
         * [ ] not needed
    
     ###Tests:
    
    • status: implementing --> testing
     

    Related

    Commit: [r943]

  • Erik Hänel

    Erik Hänel - 2022-01-18
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -28,4 +28,4 @@
    
         * [ ] not needed
    
     ###Tests:
    -(*Describe, which tests you performed and their outcome*)
    +Complex numbers are part of the automatic SW test. However, some functions might not yield correct results, if complex numbers are inserted into them. This will be fixed over time.
    
    • status: testing --> closed
     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB