Francesco is the most knowledgeable about this subject.

Jason
moorepants.info
+01 530-601-9791


On Thu, Mar 28, 2019 at 9:24 AM <zhiqik...@gmail.com> wrote:

> Hello Jason,
>
> Thank you! It seems that you are quite busy now greeting to the newbies.
> :-)
> I am waiting for someone to review my proposal. Could you please tell me
> to whom I should reach out?
>
> Regards,
> Zhiqi
>
> 在 2019年3月28日星期四 UTC+1下午5:14:46,Jason Moore写道:
>>
>> Zhiqi,
>>
>> This looks well thought out a first glance. Check out
>> https://github.com/sympy/sympy/wiki/GSoC-2019-Student-Instructions if
>> you haven't yet.
>>
>> Jason
>> moorepants.info
>> +01 530-601-9791
>>
>>
>> On Wed, Mar 27, 2019 at 12:13 AM <zhiq...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>>
>>> My name is Zhiqi KANG, I am a 4th year undergraduate of a 5-year
>>> engineering institution: Université de Technologie de Compiègne, France. I
>>> am interested in the project Linear algebra: Tensor core.Here is the link
>>> for the description of project idea.
>>> https://github.com/sympy/sympy/wiki/GSoC-2019-Ideas#linear-algebra-tensor-core
>>>  Even
>>> though I am not very familiar with the tensor in the physical field, its
>>> principal in the mathematical field is quite interesting. I have
>>> precisely looked at the requirement of this project and make sure that I am
>>> capable to accomplish most of its task. However, there are still many
>>> questions that I would like to discuss with all contributors of SymPy and
>>> expecially with the mentor. One urgent problem is that I don't find the
>>> name of mentor for this project, so I don't really know who I should CC.
>>> Could you please help me to find the mentor for this project?
>>>
>>>
>>> Please review this draft proposal and tell me what to be ameliorated.
>>> Thank you!
>>>
>>>
>>>
>>> Ø  Better Algorithms for sparse array:
>>>
>>> The idea is to manipulate directly les arrays in the sparse array level.
>>> Casting sparse arrays to a dense array and then operating is kind of a
>>> redundancy. I have found an example in tomatrix() function of
>>> sympy\sympy\tensor\array\sparse_ndim_array.py where we convert the
>>> sparse_array to a new dictionay and then cast it to matrix.(Code bellow)
>>>
>>> But I cannot find more cases in the array/tensor module, it would be
>>> great if some one can help me find out where other cases are.
>>>
>>>
>>> from sympy.matrices import SparseMatrix
>>>
>>> if self.rank() != 2:
>>>
>>>   raise ValueError('Dimensions must be of size of 2')
>>>
>>> mat_sparse = {}
>>>
>>> for key, value in self._sparse_array.items():
>>>
>>>   mat_sparse[self._get_tuple_index(key)] = value
>>>
>>> return SparseMatrix(self.shape[0], self.shape[1], mat_sparse)
>>>
>>>
>>>
>>> Ø  NumPy-like operations
>>>
>>> We have now some operations for arrays in SymPy:
>>>
>>> ²  arrayfy
>>>
>>> ²  tensor product
>>>
>>> ²  derivatives by array
>>>
>>> ²  permute dimension
>>>
>>> ²  contraction
>>>
>>> For this part of project, I am planning to implement some operations
>>> such as:
>>>
>>> ²  sum
>>>
>>> ²  divide/multiply(element wise)
>>>
>>> ²  any
>>>
>>> ²  comparators(greater/less/equal)
>>>
>>> ²  logical operator(and/or/not/xor)
>>>
>>> ²  random
>>>
>>>
>>>
>>> Ø  lazy operators on arrays
>>>
>>> lazy evaluation can improve the performance while iterating the array
>>> since it creates value only if it is called. To implement lazy operators, I
>>> am thinking about two plans:
>>>
>>> 1.      Create a new sub-module named lazy-array (larray) of which most
>>> of the operations are lazy evaluated. A standard Array can be cast to a
>>> lazy-array by simply calling the constructor of larray and passing it as
>>> parameter. By doing so, users can choose whatever they want in the module
>>> level, which means that to manipulate a simple array or a lazy array.
>>>
>>>
>>>
>>> 1.      Create a lazy version for les operators mentioned above. The
>>> lazy operators are accessible for a specific purpose. This implementation
>>> focusses on a function level for calling lazy evaluated operations, which
>>> means to call a simple inverse_matrix function or a lazy one.
>>>
>>>
>>>
>>> Besides, I have found in sympy\sympy\tensor\tensor.py a class
>>> _TensorDataLazyEvaluator which can be an example for me to implement these
>>> functionalities. It has methods like delete item, inverse matrix, etc.
>>>
>>>
>>>
>>> Ø  code generation for arrays and array operators
>>>
>>> This part of project should be involved with another GSoC project purely
>>> for code generation. I would like to discuss with the mentor of the codegen
>>> project to have a better point of view for it.
>>>
>>> I have had an internship for 6 months in BNP Paribas Securities Services
>>> in Paris as developer. During this period, I have similarly worked on code
>>> generation task, except that the programming language is C#.( I was using
>>> EntityFramework and T4 by Microsoft) I believe that this experience can
>>> help me to get familiar with the code generation process in this project.
>>>
>>>
>>>
>>> Ø  Integration over indexed symbols and arrays
>>>
>>> Firstly, I would like to talk about integration over arrays:
>>>
>>> Can we imagine the array as a set of coordinates? Suppose that we have a
>>> array A, say 2-dimension as (p, q). We can image two axis x and y so that
>>> index i and j are coordinates for the point Pij in axis x and axis y. The
>>> value A[pi,qj] should be the coordinate of axis z. By assuming this, we can
>>> use a Riemann integral or Lebesgue integral to calculate its integration
>>> like summing the column in the 3D space.
>>>
>>> I don’t know if this idea is correct, I would love to discuss it with
>>> you!
>>>
>>>
>>>
>>> Secondly, for integration over indexed symbols, I don’t really know what
>>> it means. Should the output be an expression rather than a value? It would
>>> be great if someone can show me with an example, thanks!
>>>
>>>
>>>
>>> Ø  Equation solving with indexed symbols.
>>>
>>> I am not very familiar with this topic either. Should the result be an
>>> expression as well? It would be great if someone can show me with an
>>> example, thanks!
>>>
>>>
>>> Ø  Implement some well-known tensor math
>>>
>>> If the time permits, I would be glad to do the extra part of this
>>> project. But I don’t know very well relativity, electromagnetism, etc.
>>> It would take me some time to better understand the principles and start to
>>> work on it. However, I do find some math formula that associated with this
>>> topic. https://en.wikipedia.org/wiki/Integral
>>>
>>>
>>> Ø  Unify the various SymPy module
>>>
>>> To be done.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "sympy" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to sy...@googlegroups.com.
>>> To post to this group, send email to sy...@googlegroups.com.
>>> Visit this group at https://groups.google.com/group/sympy.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sympy/a5ff49d3-63e4-45e5-b87f-4b9d6be30085%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sympy/a5ff49d3-63e4-45e5-b87f-4b9d6be30085%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+unsubscr...@googlegroups.com.
> To post to this group, send email to sympy@googlegroups.com.
> Visit this group at https://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/91ab9eee-afef-41fa-8b60-ea2b47fb074c%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/91ab9eee-afef-41fa-8b60-ea2b47fb074c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAP7f1Ah8btwxHXNL3Lqmx5prp18y7LEC8%3DpCdkb7KZ7zGZ%2BnzA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to