Divyanshu Thakur2019-08-20T15:23:40+00:00https://divyanshu132.github.io/Divyanshu Thakurdivyanshufs01@gmail.comGSoC 2019 - Week 11 and 12 - Phase-III Completion2019-08-19T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-12<p>We’ve reached to the end of GSoC 2019, end to the really productive and wonderful summer. In the last two weeks I worked on documenting polycyclic groups which got merged as well, here is the PR <a href="https://github.com/sympy/sympy/pull/17399">sympy/sympy#17399</a>.</p>
<p>Also, the PR on Induced-pcgs and exponent vector for polycyclic subgroups got merged <a href="https://github.com/sympy/sympy/pull/17317">sympy/sympy#17317</a>.</p>
<p>Let’s have a look at some of the highlights of documentation.</p>
<ul>
<li>The parameters of both the classes(<code class="highlighter-rouge">PolycyclicGroup</code> and <code class="highlighter-rouge">Collector</code>) has been discussed in detail.</li>
<li>Conditions for a word to be collected or uncollected is highlighted.</li>
<li>Computation of polycyclic presentation has been explained in detail highlighting the sequence in which presentation is computed with the corresponding pcgs and and polycyclic series elements used.</li>
<li>Other methods like <code class="highlighter-rouge">subword_index</code>, <code class="highlighter-rouge">exponent_vector</code>, <code class="highlighter-rouge">depth</code>, etc are also documented.</li>
</ul>
<p>An example is provided for every functionality.
For more details one can visit:
<a href="https://docs.sympy.org/dev/modules/combinatorics/pc_groups.html">https://docs.sympy.org/dev/modules/combinatorics/pc_groups.html</a></p>
<p>Now, I’m supposed to prepare a final report presenting all the work done. Will update with report next week.
In addition to the report preparation I’ll try to add <code class="highlighter-rouge">Parameters</code> section in the <code class="highlighter-rouge">docstrings</code> for various classes and methods of <code class="highlighter-rouge">pc_groups</code>.</p>
GSoC 2019 - Week 10 - Induced Pcgs for polycyclic subgroups2019-08-05T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-10<p>The tenth week of coding period has ended and a new PR<a href="https://github.com/sympy/sympy/pull/17317">sympy/sympy#17317</a> has been introduced. The PR implements induced Pcgs and exponent vector for polycyclic subgroups with respect to the original pcgs of the group.
Below is an example to show the functionality.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> S = SymmetricGroup(8)
>>> G = S.sylow_subgroup(2)
>>> gens = [G[0], G[1]]
>>> PcGroup = G.polycyclic_group()
>>> collector = PcGroup.collector
>>> ipcgs = collector.induced_pcgs(gens)
>>> [gen.order() for gen in ipcgs]
[2, 2, 2]
</code></pre></div></div>
<p>Further it can also be used to implement <code class="highlighter-rouge">Canonical polycyclic sequence</code> which can be used to check if two subgroups of polycyclic presented group <code class="highlighter-rouge">G</code> are equal or not.</p>
<p>For the next week I’ll try to complete the documentation work on polycyclic groups and open a PR for the same.</p>
<p>Till then, good byee..</p>
GSoC 2019 - Week 9 - Merged Polycyclic groups2019-07-29T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-9<p>Hello everyone, the ninth week of coding period has ended and there is a really good news the polycyclic group PR <a href="https://github.com/sympy/sympy/pull/16991">sympy/sympy#16991</a> that we were working from the last one and half months is finally merged. This week I didn’t do that much work except organizing different methods and fixing small issues in the above pr to get it merged.</p>
<p>There has been a lot of rearrangement of methods, where most of the methods were moved to the class <code class="highlighter-rouge">Collector</code> from the class <code class="highlighter-rouge">PolycyclicGroup</code>. Now, we do not need free symbols in-hand, they can be computed by the Collector if not provided by the user. There are few more things which are changed like relative order is computed in the course of polycyclic sequence and series computation. For better look one can go through the above Pr.</p>
<p>I’m hopping to implement few things next week which are mentioned below.</p>
<ul>
<li>Induced polycyclic sequence for a subgroup.</li>
<li>Get started with writing docs for polycyclic groups.</li>
</ul>
<p>Till then, good byee..</p>
GSoC 2019 - Week 8 - Phase-II Completion2019-07-20T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-8<p>Phase-II has been completed and now it’s time to present all the work done during this phase. This week’s blog is little early in comparison to my previous blogs because I’ll not be active for next 2 upcoming days. In the whole phase we worked on <strong>Computations with Polycyclic Groups</strong> though the tasks mentioned in proposal for this phase were quite different. But let me tell you it worth that much time, Computation with Polycyclic groups(solvable groups) shows the actual development in computational group theory.</p>
<p>Below are the functioalities that were added to the polycyclic group in this phase, Here is the PR <a href="https://github.com/sympy/sympy/pull/16991">sympy/sympy#16991</a>.</p>
<p><strong>Testing Collector</strong></p>
<p>As discussed in <a href="https://divyanshu132.github.io/gsoc-week-5">week-5 blog</a> at the time of Collector implementation we did not have the implementation of polycyclic presentation so some hand made tests were used. Here is an example of <code class="highlighter-rouge">S(4)</code>.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> from sympy.combinatorics.free_groups import free_group
>>> F, x0, x1, x2, x3 = free_group("x0, x1, x2, x3")
>>> pc_relators = { x0**2: (), x1**3: (), x2**2: (), x3**2: (),
... x0**-1*x1*x0: x1**2, x0**-1*x2*x0: x2*x3,
... x0**-1*x3*x0: x3, x1**-1*x2*x1: x3,
... x1**-1*x3*x1: x2*x3, x2**-1*x3*x2: x3
... }
>>> word = x3*x2*x1*x0
>>> relative_order = [2, 3, 2, 2]
>>> group = word.group
>>> collector = Collector(pc_relators, relative_order, group)
>>> collector.collected_word(word)
x0*x1**2*x2*x3
</code></pre></div></div>
<p>The final word <code class="highlighter-rouge">x0*x1**2*x2*x3</code> is said to be collected. For more information about collected word please look into the docstrings of the method <code class="highlighter-rouge">Collector.collected_word()</code>.</p>
<p><strong>Computation of Polycyclic Sequence and Series</strong></p>
<p>Polycyclic sequence and series are the building blocks of polycyclic presentation (have a look at <a href="https://divyanshu132.github.io/gsoc-week-6">week-6 blog</a>) . One thing to note is that, the derived series of a group may change on different course of execution so we may have different pc sequence and series for the same group.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> G = SymmetricGroup(4)
>>> PcGroup = G.polycyclic_group()
>>> PcGroup.pcgs
[Permutation(0, 1, 2, 3), Permutation(3)(0, 2, 1), Permutation(0, 3)(1, 2), Permutation(0, 1)(2, 3)]
>>>
>>> PcGroup.pc_series[0] == G
True
>>> PcGroup.pc_series[1] == AlternatingGroup(4)
True
>>> PcGroup.relative_order()
[2, 3, 2, 2]
</code></pre></div></div>
<p><strong>Computation of Polycyclic Presentation</strong></p>
<p>Few approaches were used to compute polycyclic presentation, the current implementation is discussed in <a href="https://divyanshu132.github.io/gsoc-week-7">week-7 blog</a>. Below is a small example to show the functionality.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> G = SymmetricGroup(4)
>>> PcGroup = G.polycyclic_group()
>>> from sympy.combinatorics.free_groups import free_group
>>> len(PcGroup.pcgs)
4
>>> free_group, x0, x1, x2, x3 = free_group("x0, x1, x2, x3")
>>> PcGroup.pc_presentation(free_group)
{x3**2: (), x2**2: (), x2**-1*x3*x2: x3, x1**3: (), x1**-1*x3*x1: x2*x3, x1**-1*x2*x1: x3, x0**2: x2*x3, x0**-1*x3*x0: x2, x0**-1*x2*x0: x3, x0**-1*x1*x0: x1**2*x3}
</code></pre></div></div>
<p>As I mentioned above <code class="highlighter-rouge">pc_sequence</code> and <code class="highlighter-rouge">pc_series</code> may change on different course of execution and hence the <code class="highlighter-rouge">pc_presentation</code> changes accordingly.</p>
<p><strong>Testing Presentation</strong></p>
<p>Due to the changing <code class="highlighter-rouge">pc_presentation</code> initially, it was difficult to test presentation but later on a method has been developed and a good amount of code is introduced to test the presentation. The details can be found in the module <code class="highlighter-rouge">test_pc_groups.py</code> in the above PR.</p>
<p><strong>Additional methods for Polycyclic groups</strong></p>
<p>There were few additional methods added to the polycyclic group.</p>
<ul>
<li><code class="highlighter-rouge">exponent_vector()</code> :- It represents the given generator of a polycyclic group with the help of product of <code class="highlighter-rouge">pcgs</code>.</li>
<li><code class="highlighter-rouge">depth()</code> :- Depth of the first non-zero element in <code class="highlighter-rouge">exponent_vector</code>.</li>
<li><code class="highlighter-rouge">leading_exponent()</code> :- It represents the power of polycyclic generator at the above depth.</li>
</ul>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> from sympy.combinatorics.free_groups import free_group
>>> G = SymmetricGroup(4)
>>> PcGroup = G.polycyclic_group()
>>> pcgs = PcGroup.pcgs
>>> len(pcgs)
4
>>> free_group, x0, x1, x2, x3 = free_group("x0, x1, x2, x3")
>>> PcGroup.exponent_vector(G[1], F)
[1, 1, 1, 1]
>>> G[1] == pcgs[0]*pcgs[1]*pcgs[2]*pcgs[3]
True
>>> PcGroup.depth(G[1], free_group) == 1
>>> PcGroup.leading_exponent(G[1], free_group) == 1
</code></pre></div></div>
<p>Currently, we are discussing about organizing above methods of polycyclic group. As Kalevi feels that the suitable place for <code class="highlighter-rouge">pc_presentation</code>(currently, it’s a method of <code class="highlighter-rouge">PolycyclicGroup class</code>) is the <code class="highlighter-rouge">Collector class</code>, Perhaps the structure of both the classes should be changed and the same will be reflected in the examples mentioned above.</p>
GSoC 2019 - Week 7 - Modify Presentation and Addition of Methods2019-07-15T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-7<p>The seventh week of coding period has ended and a few methods has been introduced to polycyclic groups, also pc presentation has been modified. Previously for pc presentation we were computing the LHS for both power and conjugate relators via separate methods and then finally their RHS was computed.</p>
<p>Now, the computation of presentation starts from the bottom of the polycyclic generating sequence(pcgs) and polycyclic series. Storing all the previous generators from pcgs and then taking the last generator as the generator which acts as a conjugator and conjugates all the previous generators in the list.</p>
<p>To get a clear picture let’s take an example of <code class="highlighter-rouge">S(4)</code>
For S(4) we’ll have 4 generators in pcgs say <code class="highlighter-rouge">[x0, x1, x2, x3]</code> and the <code class="highlighter-rouge">relative_order vector as [2, 3, 2, 2]</code>. Starting from bottom of this sequence the presentation is computed in order as below.</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>x3**2 ---| ---> using only [x3] from pcgs and pc_series[1]
x2**2 |
x2**-1*x3*x2 ---| from bottom up because pc_series[0] is an identity.
x1**3 ---| ---> using [x3, x2] from pcgs and pc_series[2]
x1**-1*x3*x1 |
x1**-1*x2*x1 ---| from bottom up(which have both the gens).
x0**2 ---| ---> using [x3, x2, x1] from pcgs and pc_series[3]
x0**-1*x3*x0 |
x0**-1*x2*x0 | from bottom up(which have all three gens).
x0**-1*x1*x0 ---|
</code></pre></div></div>
<p>There were 3-methods which were added namely:</p>
<ul>
<li>Exponent vector</li>
<li>Depth</li>
<li>Leading Exponent</li>
</ul>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> from sympy.combinatorics.free_groups import free_group
>>> G = SymmetricGroup(4)
>>> PcGroup = G.polycyclic_group()
>>> pcgs = PcGroup.pcgs
>>> group, x0, x1, x2, x3 = free_group("x0, x1, x2, x3")
>>> PcGroup.exponent_vector(G[0], group)
[1, 0, 0, 0]
>>> exp = PcGroup.exponent_vector(G[1], group)
>>> g = Permutation()
>>> for i in range(len(exp)):
... g = g*pcgs[i] if exp[i] else g
...
>>> g == G[1]
True
>>>
</code></pre></div></div>
<p>For the details of these methods one can look into the docstrings and doctests of these methods in the PR <a href="https://github.com/sympy/sympy/pull/16991">sympy/sympy#16991</a>.</p>
<p>Tasks I hope to complete next week:</p>
<ul>
<li>Get the polycyclic group pr ready to be merged.</li>
<li>Get started with quotient groups.</li>
</ul>
<p>Till then good byee..</p>
GSoC 2019 - Week 6 - Computation of Polycyclic presentation2019-07-08T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-6<p>The sixth week of coding period has ended and a good amount of work has been done on polycyclic groups. Polycyclic presentation, Polycyclic generating sequence(pcgs) and it’s series is implemented which for sure need some improvement <a href="https://github.com/sympy/sympy/pull/16991">sympy/sympy#16991</a>.</p>
<p>The polycyclic series is computed starting from the bottom of the derived series of a group by adding the missing generators in the subgroups, and collecting these missing generators provide us the polycyclic generating sequence.</p>
<p>As we discussed last week <a href="https://divyanshu132.github.io/gsoc-week-5">here</a> that to compute conjugate relators of a polycyclic group we were missing the <code class="highlighter-rouge">RHS</code> term, which was of the form <code class="highlighter-rouge">x[i]**-1*x[i+1]*x[i] == RHS</code>. So, starting from the bottom of the polycyclic generating sequence forming the subgroup and finding all the generators of the RHS using <code class="highlighter-rouge">generator_product</code>, mapping these generators with the free group elements and forming a word, finally collect the above formed word which will give us the collected RHS.</p>
<p>Below is an example to compute polycyclic presentation for S(9).sylow_subgroup(3)</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>>>> from sympy.combinatorics import *
>>> from sympy.combinatorics.free_groups import free_group
>>> F, x0, x1, x2, x3 = free_group("x0, x1, x2, x3")
>>> S = SymmetricGroup(9)
>>> G = S.sylow_subgroup(3)
>>> pc_group = G.polycyclic_group()
>>> group = F
>>> pc_group.pc_presentation(group)
{x3**3: (), x2**3: (), x1**3: (), x0**3: (), x2**-1*x3*x2: x3, x1**-1*x3*x1: x3, x1**-1*x2*x1: x2, x0**-1*x3*x0: x2**2*x3**2, x0**-1*x2*x0: x3, x0**-1*x1*x0: x1*x3}
</code></pre></div></div>
<p>One problem that we’ve encountered is that the generators in pcgs may change for the same group on executing it several times which makes it difficult to test pc_presentation but, Kalevi advised me to initalize <code class="highlighter-rouge">random.seed</code> with some chosen value and then it will result in the same repeatable result, will try it by today!</p>
<p>The tasks that I’m hopping to accomplish next week are</p>
<ul>
<li>Add tests for plycyclic presentation and be sure that it works properly.</li>
<li>Include more functionalities to pc groups like <code class="highlighter-rouge">exponent_vector</code>, <code class="highlighter-rouge">element_depth</code>, <code class="highlighter-rouge">leading_coefficient</code>.</li>
<li>Add documentation for all the functions.</li>
</ul>
<p>Till then, good byee..</p>
GSoC 2019 - Week 5 - Hand-made tests for Collector2019-07-01T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-5<p>This week was mostly about testing the collection of a word and fixing small bugs in the implementation pointed out by Kalevi. The major challenge was to construct the polycyclic presentation of a group to test the Collector since we don’t have the implementation of polycyclic presentation and it’s generating sequence yet. So, we decided to form some hand made tests and we started with SymmetricGroup(4) and further we also tried with S(3) the details can be found in the test file of the PR(<a href="https://github.com/sympy/sympy/pull/16991">here</a>).</p>
<p>Now, the next step is to implement polycyclic presentation and polycyclic sequence. In the presentation we’ll need generators which we can easily get and the relators. There are two types of relators needed for the presentation:</p>
<ul>
<li>Power relations (ex. <code class="highlighter-rouge">x^re = x'</code>)</li>
<li>Conjugate relations (ex. <code class="highlighter-rouge">x[i]**-1*x[i+1]*x[i] = RHS and x[i]*x[i+1]*x[i]**-1 = RHS</code>)</li>
</ul>
<p>For every pair of generators we’ll form above conjugate relations but the tough part is computing that <code class="highlighter-rouge">RHS</code> which should be collected and for now we don’t have that much idea about how to get that RHS.</p>
<p>But, let’s hope that in upcoming days we’ll be able to figure it out, till then Good byeee…</p>
GSoC 2019 - Week 4 - Phase-I Completion2019-06-24T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-4<p>The fourth week of coding period has ended and now it’s time for phase-I evaluations. Below, is a brief progress report of the project.</p>
<p>The tasks that were proposed in the proposal for phase-I consists of:</p>
<ul>
<li>Implementation of Abelian Invariants</li>
<li>Implementation of Composition Series</li>
<li>Computation with Polycyclic groups</li>
</ul>
<p><strong>Abelian Invariants</strong></p>
<p>Implemented a function to compute the abelian invariants for a given permutation or free group. These are given as a list of prime-powers and describe the stucture of <code class="highlighter-rouge">G/G'</code> as a direct product of cyclic groups of prime power order.</p>
<ul>
<li>PR link <a href="https://github.com/sympy/sympy/pull/16670">Added method to calculate Abelian Invariants</a></li>
</ul>
<p><strong>Composition Series</strong></p>
<p>Implemented a function to compute the composition series. It provides a way to break up a group into simple pieces. Composition series of a group <code class="highlighter-rouge">G</code> is defined as the maximal subnormal series <code class="highlighter-rouge">G = H_0 > H_1 > H_2 ... > H_k = 1</code> where every factor group <code class="highlighter-rouge">H(i+1)/H(i)</code> is simple.</p>
<ul>
<li>PR link <a href="https://github.com/sympy/sympy/pull/16881">Added method for Composition Series computation</a></li>
</ul>
<p><strong>Polycyclic Groups</strong></p>
<p>The work on polycyclic group is in progress. For now, collection algorithm has been implemented which needs to be tested and a lot of discussions were made on the polycyclic generating sequence and its presentation and may be in a week we’ll be ready with the stucture of polycyclic groups and collection of words.</p>
<ul>
<li>PR link <a href="https://github.com/sympy/sympy/pull/16991">Added Polycyclic Group Class</a></li>
</ul>
<p><strong>Documentation</strong></p>
<p>Some documentation is done to increase the sphinx coverage of SymPy.</p>
<ul>
<li>PR link <a href="https://github.com/sympy/sympy/pull/16809">Increase Accessibility of docstrings from Sphinx</a></li>
</ul>
<p>To follow the discussion on above topics and the further progress of the project one can check Gitter room <a href="https://gitter.im/sympy/GroupTheory">sympy/GroupTheory</a></p>
GSoC 2019 - Week 3 - Polycyclic Groups2019-06-17T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-3<p>The third week has ended and a good amount of work has been done on polycyclic groups PR <a href="https://github.com/sympy/sympy/pull/16991">here</a>. The collection algorithm has been implemented, from the beginning of the week, I started with understanding the algorithm which took some time and then finally it was implemented, still we are facing a problem in type conversion(<a href="https://github.com/sympy/sympy/pull/16991#discussion_r294054681">here</a>) but that will be sorted out soon!</p>
<p>Even though only two weeks were alloted for polycyclic group implementation but it seems we need one more week or maybe more than a week to implement more functionalities for pc groups. But it’s completely fine because we started work early and according to the proposed timeline we still have one week.</p>
<p>Few of the issues with the current implementation which needs to be sorted out are:</p>
<ul>
<li>firstly to <code class="highlighter-rouge">compute uncollected subwords</code> the word is manipulated using its <code class="highlighter-rouge">array_form</code> which eventually leads to change in the type of the subwords computed and it creates a problem in processing these subwords further.</li>
<li>Some more issues were pointed out by Kalevi and can be seen in the comments of the PR.</li>
</ul>
<p>The complete week was spent implementing collection of words so a lot of tasks targeted last week were not completed, I’ll try to cover those tasks in the upcomming week.</p>
<ul>
<li>Solve the issues with collection of words.</li>
<li>Get ready with the pc presentation.</li>
</ul>
<p>Till then, Good byee..!</p>
GSoC 2019 - Week 2 - Polycyclic Group Presentation in SymPy2019-06-11T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-2<p>Hello world,
The second week of coding period has been ended and for the complete week we worked on the presentation of polycyclic groups. I’ve created a WIP PR for the basic structure of PcGroups <a href="https://github.com/sympy/sympy/pull/16991">here</a> but it seems like there are a lot of things that needs to be changed or enhanced in this presentation.</p>
<p>Initially I thought of representing PcGroups with just the generators of the given permutation group and then from the last week we already have composition-series(<a href="https://divyanshu132.github.io//gsoc-week-1">here</a>) so we can easily compute the generating sequence(pcgs) for the polycyclic group. But, finally we realised that the composition-series will be too big to do all the computations for the PcGroup. Also, in the presentation we can’t ignore the relators.</p>
<p>So, after all this we thought of computing the smaller version of subnormal series with cyclic factors and finally we realised that <strong>collection algorithm</strong> is something that we need. Can’t say more about this because I have to look into the <code class="highlighter-rouge">rewriting</code> code which looks like a tough task for me but let’s hope for the best.</p>
<p>For the next week I’m setting these milestones for me:</p>
<ul>
<li>Get ready with the presentation of PcGroups(still I’m not sure if collection algorithm is what we need!).</li>
<li>Implement <code class="highlighter-rouge">exponent-vector</code> which may further help in HallSubgroup computation.</li>
<li>Include more methods in the PcGroup class.</li>
</ul>
<p>Will try my best to execute things in order mentioned above. With this, sign out for the next week.</p>
GSoC 2019 - Week 1 - Composition series computation2019-06-04T00:00:00+00:00https://divyanshu132.github.io//gsoc-week-1<p>The coding period has been started from 27 may 2019 and the first week went well. We worked on the composition series computation for solvable groups. I was waiting for the PR to get merged so, that I can include a fully completed PR here 🙂. Kalevi helped a lot in reviewing and helping me with the algorithm. The PR link is <a href="https://github.com/sympy/sympy/pull/16881">here</a>.</p>
<p>Till now, everything is going as it was planned. The abelian invariants PR has been already merged in the community bonding period itself, may be some other time I’ll discuss about the details of it but for the time being one can look into the PR of abelian invariants <a href="https://github.com/sympy/sympy/pull/16670">here</a>.</p>
<p>Composition series of a group <code class="highlighter-rouge">G</code> is defined as the subnormal series <code class="highlighter-rouge">G = H_0 > H_1 > H_2 \ldots > H_k = 1</code> where every factor group
<code class="highlighter-rouge">H(i+1)/H(i)</code> is simple. The algorithm is described in the implementation itself. We wanted to make sure, the implemeted method work as expected so, I wrote a good amount of tests and examples in the docs.</p>
<p>The tasks that I’m hopping to accomplish in the next week are:</p>
<ul>
<li>Discuss with Kalevi about the Polycyclic group implementation.</li>
<li>In the end of the week get ready with WIP PR on pc groups.</li>
</ul>
<p>Hopping I’ll be able to execute things as planned! Till then good bye, keep learning.</p>
GSoC 2019 Acceptance2019-05-24T00:00:00+00:00https://divyanshu132.github.io//GSoC2019-with-sympy<p><img src="/public/gsoc.png" style="width:30%;height:30%;float:left;" />
<img src="/public/sympy.png" style="width:25%;height:25%;float:right;margin-right:100px;" /></p>
<p><br /><br /><br /><br /><br /><br /><br /><br /></p>
<p>The results of <strong><a href="https://summerofcode.withgoogle.com/projects/#5688477549592576">Google Summer of Code</a></strong> were out on 06 May 2019 and guess what I got selected and will be working under <strong><a href="http://sympy.org">Sympy</a></strong> for the next 3 months. I will be working on my project, <a href="https://github.com/sympy/sympy/wiki/GSoC-2019-Application-Divyanshu:-Group-Theory">Group Theory</a>, during this period. I am really excited to work with such an amazing organization. I would like to thank all the mentors especially <a href="https://github.com/jksuom">Kalevi Suominen</a> and <a href="https://github.com/asmeurer">Aaron Meurer</a>, for guiding me in my proposal and PR’s. The best part is I got my favourite mentor <strong>Kalevi Suominen</strong>.</p>
<p>The first phase is the <em>Community Bonding Period</em>, which has nearly come to an end. In this period I mainly focussed on the following things.</p>
<ul>
<li>
<p>Setting up blog and synchronizing it with planet sympy.</p>
</li>
<li>
<p>Discussing possible means of communication etc.</p>
</li>
<li>
<p>Planning the implementation of some of the features of the project with Kalevi.</p>
</li>
<li>
<p>Familiarizing with the codebase of <code class="highlighter-rouge">sympy/combinatorics</code> and see how it may help solving the problems while implementing the project.</p>
</li>
<li>
<p>Getting more in-depth theoretical knowledge of the features to be implemented.</p>
</li>
</ul>
<p>Looking forward for a really productive and wonderful summer ahead.</p>