1. 15 Dec, 2022 1 commit
    • Xiaowu Zhang's avatar
      erp5_wendelin: add data mapping · ed280d8d
      Xiaowu Zhang authored
      data mapping is used to map complex data into a single value
      
      the idea is if an object has complet data to process, like (object, value1, value2, value3,value4....), we can mapping (object, value1, value2, value3,value4....) into a single value X, then we process only X to make it faster
      
      here is an use case:
      
      we have two 2D data arrays with 5 columns, the first column is the name of object, the other fours are the differents value of this object
      
      Data ArrayA:
      
      | object | value1 | value2 | value3 | value4 |
      | ------ | ------ | ------ | ------ | ------ |
      | X | 1 | 2 | 3 | 4 |
      | Y | 5 |  6 | 7 | 8 |
      | Z | 9 |  10 | 11 | 12 |
      
      Data ArrayB:
      
      | object | value1 | value2 | value3 | value4 |
      | ------ | ------ | ------ | ------ | ------ |
      | X | 1 | 2 | 3 | 4 |
      | Y | 5 |  8 | 7 | 8 |
      | Z | 9 |  10 | 192 | 12 |
      
      now we need to compare data array A to data array B to find which object inside A has different value.
      
      without data mapping, we need to compare each object's 4 values, the complexity is O(2^n)
      
      with data mapping:
      
      we map those values:
      
      (X, 1, 2, 3, 4)  ==> 1
      
      (Y, 5, 6, 7, 8)  ==> 2
      
      (Z, 9, 10, 11,12) ==>3
      
      (Y, 5, 8, 7, 8) ==> 4
      
      (Z, 9, 10, 192, 12) ==> 5
      
      Data ArrayA:
      
      | object |
      | ------ |
      | 1 |
      | 2 |
      | 3 |
      
      Data ArrayB:
      
      | object |
      | ------ |
      | 1 |
      | 4 |
      | 5 |
      
      then compare 1D array is fast, the complexity is O(n)
      ed280d8d
  2. 14 Dec, 2022 5 commits
  3. 17 Oct, 2022 1 commit
  4. 13 Oct, 2022 1 commit
  5. 28 Jul, 2022 1 commit
  6. 21 Jul, 2022 3 commits
  7. 19 Jul, 2022 1 commit
  8. 14 Jul, 2022 1 commit
  9. 30 Jun, 2022 2 commits
  10. 28 Jun, 2022 2 commits
  11. 23 Jun, 2022 1 commit
  12. 16 Jun, 2022 3 commits
  13. 15 Jun, 2022 2 commits
  14. 14 Jun, 2022 3 commits
  15. 09 Jun, 2022 3 commits
  16. 07 Jun, 2022 4 commits
  17. 20 May, 2022 3 commits
  18. 18 May, 2022 1 commit
  19. 16 May, 2022 2 commits