Unexpected behavior of the procedure `Area` on the object 'Polygon'












9












$begingroup$


Sometimes get a results, sometimes left unevaluated.



For instance



 Area@Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 



12




Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 


(a,b - some 2x2 matrices)




Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]




Area@(Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] )



Area[Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]]




Area@Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]


(copy and paste)




1440




How to guess when a calculation will give a result and when it will not be evaluated? And why does it not evaluate?










share|improve this question











$endgroup$








  • 3




    $begingroup$
    What are the definitions of a and b?
    $endgroup$
    – MarcoB
    Mar 22 at 14:36










  • $begingroup$
    If you want to experiment with this and I haven't made a mistake then it looks like his a.b == {{2,7},{-16,4}} This seems to reproduce his results.
    $endgroup$
    – Bill
    Mar 22 at 16:15


















9












$begingroup$


Sometimes get a results, sometimes left unevaluated.



For instance



 Area@Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 



12




Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 


(a,b - some 2x2 matrices)




Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]




Area@(Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] )



Area[Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]]




Area@Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]


(copy and paste)




1440




How to guess when a calculation will give a result and when it will not be evaluated? And why does it not evaluate?










share|improve this question











$endgroup$








  • 3




    $begingroup$
    What are the definitions of a and b?
    $endgroup$
    – MarcoB
    Mar 22 at 14:36










  • $begingroup$
    If you want to experiment with this and I haven't made a mistake then it looks like his a.b == {{2,7},{-16,4}} This seems to reproduce his results.
    $endgroup$
    – Bill
    Mar 22 at 16:15
















9












9








9





$begingroup$


Sometimes get a results, sometimes left unevaluated.



For instance



 Area@Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 



12




Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 


(a,b - some 2x2 matrices)




Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]




Area@(Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] )



Area[Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]]




Area@Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]


(copy and paste)




1440




How to guess when a calculation will give a result and when it will not be evaluated? And why does it not evaluate?










share|improve this question











$endgroup$




Sometimes get a results, sometimes left unevaluated.



For instance



 Area@Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 



12




Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] 


(a,b - some 2x2 matrices)




Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]




Area@(Transpose@(a.b.Transpose[#]) & /@ Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}] )



Area[Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]]




Area@Polygon[{{0, 0}, {8, -64}, {18, -24}, {36, -48}, {28, 16}}]


(copy and paste)




1440




How to guess when a calculation will give a result and when it will not be evaluated? And why does it not evaluate?







bugs evaluation computational-geometry polygons packed-arrays






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 22 at 17:18









kirma

10.2k13058




10.2k13058










asked Mar 22 at 14:22









Slepecky MamutSlepecky Mamut

630110




630110








  • 3




    $begingroup$
    What are the definitions of a and b?
    $endgroup$
    – MarcoB
    Mar 22 at 14:36










  • $begingroup$
    If you want to experiment with this and I haven't made a mistake then it looks like his a.b == {{2,7},{-16,4}} This seems to reproduce his results.
    $endgroup$
    – Bill
    Mar 22 at 16:15
















  • 3




    $begingroup$
    What are the definitions of a and b?
    $endgroup$
    – MarcoB
    Mar 22 at 14:36










  • $begingroup$
    If you want to experiment with this and I haven't made a mistake then it looks like his a.b == {{2,7},{-16,4}} This seems to reproduce his results.
    $endgroup$
    – Bill
    Mar 22 at 16:15










3




3




$begingroup$
What are the definitions of a and b?
$endgroup$
– MarcoB
Mar 22 at 14:36




$begingroup$
What are the definitions of a and b?
$endgroup$
– MarcoB
Mar 22 at 14:36












$begingroup$
If you want to experiment with this and I haven't made a mistake then it looks like his a.b == {{2,7},{-16,4}} This seems to reproduce his results.
$endgroup$
– Bill
Mar 22 at 16:15






$begingroup$
If you want to experiment with this and I haven't made a mistake then it looks like his a.b == {{2,7},{-16,4}} This seems to reproduce his results.
$endgroup$
– Bill
Mar 22 at 16:15












2 Answers
2






active

oldest

votes


















8












$begingroup$

EDIT: Reported to WRI as CASE:4237867 - and apparently should work on V12. :)



Seems like a bug in my opinion. Consider the following:



With[{poly0 = Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]}, 
With[{poly = Transpose[IdentityMatrix[2].Transpose@#] & /@ poly0},
{poly0 === poly, Area /@ {poly0, poly}}]]



{True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




Although the Mma considers poly0 and its transformed but identical copy (coordinates transformed using IdentityMatrix) identical, they produce different results.



Probably the internal representation of poly is not the same as poly0. At the same time its output form is identical, which actually transforms it to other form if you copy and paste it.



This can be further simplified to show that from the perspective of Polygon two semantically identical coordinate lists can differ:



With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
{coord0 === coord, Area@*Polygon /@ {coord0, coord}}]]



{True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




I suspect there's something wrong with the way Polygon reads the internal representation of a list!



EDIT: I think there's a good chance this problem is caused by the fact coord is a packed array, while coord0 is not:



With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
{coord0 === coord, Developer`PackedArrayQ /@ {coord0, coord},
Area@*Polygon /@ {coord0, Developer`FromPackedArray@coord}}]]



{True, {False, True}, {12, 12}}




So, you can use FromPackedArray on the transformed coordinate list as a workaround.






share|improve this answer











$endgroup$





















    6












    $begingroup$

    This is a packed array issue:



    Area @ Polygon[Developer`ToPackedArray @ {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]



    Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]




    This will be fixed in M12.






    share|improve this answer









    $endgroup$













      Your Answer





      StackExchange.ifUsing("editor", function () {
      return StackExchange.using("mathjaxEditing", function () {
      StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
      StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
      });
      });
      }, "mathjax-editing");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "387"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f193772%2funexpected-behavior-of-the-procedure-area-on-the-object-polygon%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      8












      $begingroup$

      EDIT: Reported to WRI as CASE:4237867 - and apparently should work on V12. :)



      Seems like a bug in my opinion. Consider the following:



      With[{poly0 = Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]}, 
      With[{poly = Transpose[IdentityMatrix[2].Transpose@#] & /@ poly0},
      {poly0 === poly, Area /@ {poly0, poly}}]]



      {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




      Although the Mma considers poly0 and its transformed but identical copy (coordinates transformed using IdentityMatrix) identical, they produce different results.



      Probably the internal representation of poly is not the same as poly0. At the same time its output form is identical, which actually transforms it to other form if you copy and paste it.



      This can be further simplified to show that from the perspective of Polygon two semantically identical coordinate lists can differ:



      With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
      With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
      {coord0 === coord, Area@*Polygon /@ {coord0, coord}}]]



      {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




      I suspect there's something wrong with the way Polygon reads the internal representation of a list!



      EDIT: I think there's a good chance this problem is caused by the fact coord is a packed array, while coord0 is not:



      With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
      With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
      {coord0 === coord, Developer`PackedArrayQ /@ {coord0, coord},
      Area@*Polygon /@ {coord0, Developer`FromPackedArray@coord}}]]



      {True, {False, True}, {12, 12}}




      So, you can use FromPackedArray on the transformed coordinate list as a workaround.






      share|improve this answer











      $endgroup$


















        8












        $begingroup$

        EDIT: Reported to WRI as CASE:4237867 - and apparently should work on V12. :)



        Seems like a bug in my opinion. Consider the following:



        With[{poly0 = Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]}, 
        With[{poly = Transpose[IdentityMatrix[2].Transpose@#] & /@ poly0},
        {poly0 === poly, Area /@ {poly0, poly}}]]



        {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




        Although the Mma considers poly0 and its transformed but identical copy (coordinates transformed using IdentityMatrix) identical, they produce different results.



        Probably the internal representation of poly is not the same as poly0. At the same time its output form is identical, which actually transforms it to other form if you copy and paste it.



        This can be further simplified to show that from the perspective of Polygon two semantically identical coordinate lists can differ:



        With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
        With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
        {coord0 === coord, Area@*Polygon /@ {coord0, coord}}]]



        {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




        I suspect there's something wrong with the way Polygon reads the internal representation of a list!



        EDIT: I think there's a good chance this problem is caused by the fact coord is a packed array, while coord0 is not:



        With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
        With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
        {coord0 === coord, Developer`PackedArrayQ /@ {coord0, coord},
        Area@*Polygon /@ {coord0, Developer`FromPackedArray@coord}}]]



        {True, {False, True}, {12, 12}}




        So, you can use FromPackedArray on the transformed coordinate list as a workaround.






        share|improve this answer











        $endgroup$
















          8












          8








          8





          $begingroup$

          EDIT: Reported to WRI as CASE:4237867 - and apparently should work on V12. :)



          Seems like a bug in my opinion. Consider the following:



          With[{poly0 = Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]}, 
          With[{poly = Transpose[IdentityMatrix[2].Transpose@#] & /@ poly0},
          {poly0 === poly, Area /@ {poly0, poly}}]]



          {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




          Although the Mma considers poly0 and its transformed but identical copy (coordinates transformed using IdentityMatrix) identical, they produce different results.



          Probably the internal representation of poly is not the same as poly0. At the same time its output form is identical, which actually transforms it to other form if you copy and paste it.



          This can be further simplified to show that from the perspective of Polygon two semantically identical coordinate lists can differ:



          With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
          With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
          {coord0 === coord, Area@*Polygon /@ {coord0, coord}}]]



          {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




          I suspect there's something wrong with the way Polygon reads the internal representation of a list!



          EDIT: I think there's a good chance this problem is caused by the fact coord is a packed array, while coord0 is not:



          With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
          With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
          {coord0 === coord, Developer`PackedArrayQ /@ {coord0, coord},
          Area@*Polygon /@ {coord0, Developer`FromPackedArray@coord}}]]



          {True, {False, True}, {12, 12}}




          So, you can use FromPackedArray on the transformed coordinate list as a workaround.






          share|improve this answer











          $endgroup$



          EDIT: Reported to WRI as CASE:4237867 - and apparently should work on V12. :)



          Seems like a bug in my opinion. Consider the following:



          With[{poly0 = Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]}, 
          With[{poly = Transpose[IdentityMatrix[2].Transpose@#] & /@ poly0},
          {poly0 === poly, Area /@ {poly0, poly}}]]



          {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




          Although the Mma considers poly0 and its transformed but identical copy (coordinates transformed using IdentityMatrix) identical, they produce different results.



          Probably the internal representation of poly is not the same as poly0. At the same time its output form is identical, which actually transforms it to other form if you copy and paste it.



          This can be further simplified to show that from the perspective of Polygon two semantically identical coordinate lists can differ:



          With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
          With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
          {coord0 === coord, Area@*Polygon /@ {coord0, coord}}]]



          {True, {12, Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]}}




          I suspect there's something wrong with the way Polygon reads the internal representation of a list!



          EDIT: I think there's a good chance this problem is caused by the fact coord is a packed array, while coord0 is not:



          With[{coord0 = {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}}, 
          With[{coord = Transpose[IdentityMatrix[2].Transpose@coord0]},
          {coord0 === coord, Developer`PackedArrayQ /@ {coord0, coord},
          Area@*Polygon /@ {coord0, Developer`FromPackedArray@coord}}]]



          {True, {False, True}, {12, 12}}




          So, you can use FromPackedArray on the transformed coordinate list as a workaround.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 22 at 17:02

























          answered Mar 22 at 16:23









          kirmakirma

          10.2k13058




          10.2k13058























              6












              $begingroup$

              This is a packed array issue:



              Area @ Polygon[Developer`ToPackedArray @ {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]



              Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]




              This will be fixed in M12.






              share|improve this answer









              $endgroup$


















                6












                $begingroup$

                This is a packed array issue:



                Area @ Polygon[Developer`ToPackedArray @ {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]



                Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]




                This will be fixed in M12.






                share|improve this answer









                $endgroup$
















                  6












                  6








                  6





                  $begingroup$

                  This is a packed array issue:



                  Area @ Polygon[Developer`ToPackedArray @ {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]



                  Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]




                  This will be fixed in M12.






                  share|improve this answer









                  $endgroup$



                  This is a packed array issue:



                  Area @ Polygon[Developer`ToPackedArray @ {{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]



                  Area[Polygon[{{0, 0}, {4, 0}, {2, 2}, {4, 4}, {0, 4}}]]




                  This will be fixed in M12.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Mar 22 at 16:49









                  Carl WollCarl Woll

                  71.6k394186




                  71.6k394186






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Mathematica Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      Use MathJax to format equations. MathJax reference.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f193772%2funexpected-behavior-of-the-procedure-area-on-the-object-polygon%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Masuk log Menu navigasi

                      Identifying “long and narrow” polygons in with PostGISlength and width of polygonWhy postgis st_overlaps reports Qgis' “avoid intersections” generated polygon as overlapping with others?Adjusting polygons to boundary and filling holesDrawing polygons with fixed area?How to remove spikes in Polygons with PostGISDeleting sliver polygons after difference operation in QGIS?Snapping boundaries in PostGISSplit polygon into parts adding attributes based on underlying polygon in QGISSplitting overlap between polygons and assign to nearest polygon using PostGIS?Expanding polygons and clipping at midpoint?Removing Intersection of Buffers in Same Layers

                      Старые Смолеговицы Содержание История | География | Демография | Достопримечательности | Примечания | НавигацияHGЯOLHGЯOL41 206 832 01641 606 406 141Административно-территориальное деление Ленинградской области«Переписная оброчная книга Водской пятины 1500 года», С. 793«Карта Ингерманландии: Ивангорода, Яма, Копорья, Нотеборга», по материалам 1676 г.«Генеральная карта провинции Ингерманландии» Э. Белинга и А. Андерсина, 1704 г., составлена по материалам 1678 г.«Географический чертёж над Ижорскою землей со своими городами» Адриана Шонбека 1705 г.Новая и достоверная всей Ингерманландии ланткарта. Грав. А. Ростовцев. СПб., 1727 г.Топографическая карта Санкт-Петербургской губернии. 5-и верстка. Шуберт. 1834 г.Описание Санкт-Петербургской губернии по уездам и станамСпецкарта западной части России Ф. Ф. Шуберта. 1844 г.Алфавитный список селений по уездам и станам С.-Петербургской губернииСписки населённых мест Российской Империи, составленные и издаваемые центральным статистическим комитетом министерства внутренних дел. XXXVII. Санкт-Петербургская губерния. По состоянию на 1862 год. СПб. 1864. С. 203Материалы по статистике народного хозяйства в С.-Петербургской губернии. Вып. IX. Частновладельческое хозяйство в Ямбургском уезде. СПб, 1888, С. 146, С. 2, 7, 54Положение о гербе муниципального образования Курское сельское поселениеСправочник истории административно-территориального деления Ленинградской области.Топографическая карта Ленинградской области, квадрат О-35-23-В (Хотыницы), 1930 г.АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1933, С. 27, 198АрхивированоАдминистративно-экономический справочник по Ленинградской области. — Л., 1936, с. 219АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1966, с. 175АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1973, С. 180АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1990, ISBN 5-289-00612-5, С. 38АрхивированоАдминистративно-территориальное деление Ленинградской области. — СПб., 2007, с. 60АрхивированоКоряков Юрий База данных «Этно-языковой состав населённых пунктов России». Ленинградская область.Административно-территориальное деление Ленинградской области. — СПб, 1997, ISBN 5-86153-055-6, С. 41АрхивированоКультовый комплекс Старые Смолеговицы // Электронная энциклопедия ЭрмитажаПроблемы выявления, изучения и сохранения культовых комплексов с каменными крестами: по материалам работ 2016-2017 гг. в Ленинградской области