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 <javascript:>> 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 <javascript:>.
>> To post to this group, send email to sy...@googlegroups.com <javascript:>
>> .
>> 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to