{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":1305,"title":"Creation of 2D Sinc Surface","description":"This Challenge is to efficiently create the Sombrero function of various sizes, resolutions, and frequencies.\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/sinc64_3_1.png\u003e\u003e\r\n\r\n*Figure Example:* Freq=1; XY_max_value=3; Num Rows / Cols 64\r\n\r\nCreate the 2-D array m(row,col)=sin(pi*R*freq)/(pi*R*freq) where R is the distance from the center of the array. The array is [nrc,nrc] with X(1,1)=Y(1,1)= - xymax and X(nrc,nrc)=Y(nrc,nrc)=xymax.\r\n\r\n*Input:* [xymax,nrc,freq]\r\n\r\n*Output:* [m] an array of size(nrc,nrc) representing the sin(x)/x function\r\n\r\n*Hints:*\r\n\r\nMatlab provides excellent functions and array operators to readily create vectors and grids. [ linspace, meshgrid ]  \r\n\r\n*Future:*\r\n\r\nPolar grid creation to produce Zernike surfaces","description_html":"\u003cp\u003eThis Challenge is to efficiently create the Sombrero function of various sizes, resolutions, and frequencies.\u003c/p\u003e\u003cimg src = \"https://sites.google.com/site/razapor/matlab_cody/sinc64_3_1.png\"\u003e\u003cp\u003e\u003cb\u003eFigure Example:\u003c/b\u003e Freq=1; XY_max_value=3; Num Rows / Cols 64\u003c/p\u003e\u003cp\u003eCreate the 2-D array m(row,col)=sin(pi*R*freq)/(pi*R*freq) where R is the distance from the center of the array. The array is [nrc,nrc] with X(1,1)=Y(1,1)= - xymax and X(nrc,nrc)=Y(nrc,nrc)=xymax.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [xymax,nrc,freq]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e [m] an array of size(nrc,nrc) representing the sin(x)/x function\u003c/p\u003e\u003cp\u003e\u003cb\u003eHints:\u003c/b\u003e\u003c/p\u003e\u003cp\u003eMatlab provides excellent functions and array operators to readily create vectors and grids. [ linspace, meshgrid ]\u003c/p\u003e\u003cp\u003e\u003cb\u003eFuture:\u003c/b\u003e\u003c/p\u003e\u003cp\u003ePolar grid creation to produce Zernike surfaces\u003c/p\u003e","function_template":"function m=sinx_div_x(xymax,nrc,freq)\r\n m=zeros(nrc);","test_suite":"%%\r\nnrc=65;\r\nxymax=3;\r\nfreq=1;\r\n\r\nm=sinx_div_x(xymax,nrc,freq);\r\n\r\n%figure(3);imagesc(m)\r\n%figure(4);surf(m)\r\n\r\n xv=repmat(-xymax:2*xymax/(nrc-1):xymax,nrc,1);\r\n yv=xv';\r\n mexp=zeros(nrc);\r\n for r=1:nrc\r\n  for c=1:nrc\r\n  Rv=sqrt(xv(r,c)^2+yv(r,c)^2);\r\n  if Rv\u003eeps\r\n   mexp(r,c)=sin(Rv*pi*freq)/(Rv*pi*freq);\r\n  else\r\n   mexp(r,c)=1;\r\n  end\r\n  end % c\r\n end %r\r\n\r\n%figure(1);imagesc(mexp)\r\n%figure(2);surf(mexp)\r\n\r\nassert(~any(any(isnan(m))))\r\nassert(max(max(abs(m-mexp)))\u003c.01)\r\n\r\n%%\r\nnrc=127;\r\nxymax=3;\r\nfreq=4;\r\n\r\nm=sinx_div_x(xymax,nrc,freq);\r\n\r\n%figure(3);imagesc(m)\r\n%figure(4);surf(m)\r\n\r\n xv=repmat(-xymax:2*xymax/(nrc-1):xymax,nrc,1);\r\n yv=xv';\r\n mexp=zeros(nrc);\r\n for r=1:nrc\r\n  for c=1:nrc\r\n  Rv=sqrt(xv(r,c)^2+yv(r,c)^2);\r\n  if Rv\u003eeps\r\n   mexp(r,c)=sin(Rv*pi*freq)/(Rv*pi*freq);\r\n  else\r\n   mexp(r,c)=1;\r\n  end\r\n  end % c\r\n end %r\r\n\r\n%figure(1);imagesc(mexp)\r\n%figure(2);surf(mexp)\r\n\r\nassert(~any(any(isnan(m))))\r\nassert(max(max(abs(m-mexp)))\u003c.01)\r\n\r\n%%\r\nnrc=96;\r\nxymax=16;\r\nfreq=0.5;\r\n\r\nm=sinx_div_x(xymax,nrc,freq);\r\n\r\n%figure(3);imagesc(m)\r\n%figure(4);surf(m)\r\n\r\n xv=repmat(-xymax:2*xymax/(nrc-1):xymax,nrc,1);\r\n yv=xv';\r\n mexp=zeros(nrc);\r\n for r=1:nrc\r\n  for c=1:nrc\r\n  Rv=sqrt(xv(r,c)^2+yv(r,c)^2);\r\n  if Rv\u003eeps\r\n   mexp(r,c)=sin(Rv*pi*freq)/(Rv*pi*freq);\r\n  else\r\n   mexp(r,c)=1;\r\n  end\r\n  end % c\r\n end %r\r\n\r\n%figure(1);imagesc(mexp)\r\n%figure(2);surf(mexp)\r\n\r\nassert(~any(any(isnan(m))))\r\nassert(max(max(abs(m-mexp)))\u003c.01)\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":"2013-03-01T06:34:16.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-02-28T03:54:48.000Z","updated_at":"2025-06-24T13:11:54.000Z","published_at":"2013-02-28T05:36:10.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to efficiently create the Sombrero function of various sizes, resolutions, and frequencies.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eFigure Example:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Freq=1; XY_max_value=3; Num Rows / Cols 64\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCreate the 2-D array m(row,col)=sin(pi*R*freq)/(pi*R*freq) where R is the distance from the center of the array. The array is [nrc,nrc] with X(1,1)=Y(1,1)= - xymax and X(nrc,nrc)=Y(nrc,nrc)=xymax.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [xymax,nrc,freq]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [m] an array of size(nrc,nrc) representing the sin(x)/x function\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eHints:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMatlab provides excellent functions and array operators to readily create vectors and grids. [ linspace, meshgrid ]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eFuture:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePolar grid creation to produce Zernike surfaces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAABGvElEQVR42u2di1UjOxZFlQEhEAIhEAIhEAIhEAIhEIJDIARCIARCqHnTdBfy/elKVWW77H0Wa1Y/j7vbXZa0de5HKhNCCCF0ASo8AoQQQgAJIYQQAkgIIYQAEkIIIQSQEEIIASSEEEIIICGEEAJICCGEEEBCCCEEkBBCCCGAhBBCCCAhhBBCAAkhhBBAQgghhAASQgghgIQQQggBJIQQQgAJIYQQAkgIIYQAEkIIIQSQEEIIAaSL/pcU4IoQQgDpAmgEkBBCCCBdhDcCSAghBJAuCEsIIYQAEkBCCCEEkAASQggBJICEEEIIINlAAk4IIQSQABJCCCGABJAQQgggXSycEEIIASSAhBDa69Jxyb8GSDAJIXSFiztrBUACSAixuCMWN4CEmM8s7mjPz/laxwZAQizuiNmHABJTYv8LPWIkIwSQrnDnztLD+o7QLY9hJidiYiCGMZ8ZICHWd8RIRugWgMSsQAxjhAASQqzvCDGGARJiYiB07cP4KmcfCwojDCFGMgJIzAqEGMYI4ZAQ6ztCjGGAhJgYCDGMmX0AiRGGECMZASRmBUIMY4RwSAixviPGMEBCTAyEGMZ8coDE8EKIkYwAErMCIYYxQgAJIdZ3xBgGSIiJgRDDmE8OkJgYCDGSEUBiViDEMEYIICHE+o4YwwAJMTEQYhjz4QESEwMhRjICSMwKhBjGCAEkhFjfEWMYICHE4o4Yxnx4gMTEQIiRjHBIzAqEGMYIASSEWN8RIoeEEIs7Yhjz+QESEwMhRjK6jZHDrECIYYwQQEKI9R0hxjBAQkwMhMghASTE+o4YyQjdEJCYFYhhjBBAQoj1HSHGMEBCTAyEbmYYlz8CSIiJgRAjGd0SkEql5hvq9zArEIs7QgBpq9loTk5mLGJ9R4xhgASQmBgIMYzP/PnJIV0KkK6qKYz1HTGS0S2PnCsAkpdkYlYgFneEANLZHBKzF7G+I8YwQDoPkFhumBgI3fIwJocEkJgYCDGSEUBKvKH+X4RY3BECSGsa0qDpVb+BOYxY3xFjGCDxhTExEGIYn/rzX8dkBEh8bIQYycYnv+Rf45DYMiDE4n6FizsLBUBiGiMGBos7YnEDSIjFncUd7fk563FCDolBxmdmcUdsBxFASkyJq2mSZXFncUcIIF3JNGYXj3jIiDEMkBATAyGG8Sk23FcwH1lQmBgIMZIRQGJWIMQwRgiHhFjfEWIMAyTExECIYbzOxyaHhJgYCDGSEUBiViAWd4QAEkKs7wgxhgESYmIgxDCWH/uamutZUJgYCDGSEUBiViDEMEYIh4RY3xFiDAMkxMRAiGG8zicnh4SYGAgxkhFAYlYgFneEABJCrO8IMYYBEmJiIMQwlp9cfP5935TNcGRiIMRIRgCJWYEQwxghHBJifUeIMQyQEBMDIYbxKh+eHBJiYiDESObJAyRmBWKJQegqRzuPALG+I8QYBkiIiYEQw3jRh9eff8edVQxHJgZCjGSePEDiu0GIYYwQDgmxviPEGAZIiImBEMN4o89PDgkxMRBiJPPkARKzAjGMEbqC0c4jQKzvCDGGARJiYiDEMF7/8+/0H8WCwsRAiJHMkwdIfDcIMYwRwiEh1neEGMMACTExEGIYr/b5r6YViQWFiYFG5r8WT4aRzJMHSMwKdGoUvR7/lH//yzBG6NaBxC4VnWB9/+83vv358fTKIERstW8cSNd0nzwT45J3PDWN3o5/yr//fQVLDOMzjc/r+EcBJCYG6jBGBx9Ib1glRjJPHiB5/8msQKvsPWcUzT8Bk2oXtcoIZBijG5pxOCTEFtJ754dCUQZIqzMJoRtZ5QASYmJENPqymJQB0gEmMYxP6OOv498FkJgYKKLRlxWv8ySAdLNMYiTz5AGS/E9mBVpOo69jusye6eP4Z/5dxWLSkqHIMEY3NPuuEkjMYTS2vpcKMDWQinrFBNJHhaWiTBUPH2GDrhxIk9UYy+RnYqxlj77UfzaB9GFVQ8AkhvGmn/86WpEKI4yPjcTO5kvZozEgCZP0cTNMYiTz5AFSe8uAUBeQ/j+EFgBJ558GxiTD+FwL+iX/+mqfP9sExBZyptF0f1RcNy0G0ldVAv51Y4G7vSzuu/tGyCHBJHTND3l2QjOQZhotB9KXKs9b6JNY3BnGyYDQ/ljLWslnJiwz26MfINU08oCkFQBJMEn4pOsL0TCSz2j0cUgX+oUxKwjLZCZqbY9+gDT5QPrFiXpPUcXfX061XtfgZBijG1pPcEgs7jeVXDUa10J7NIn0jw+tmkwrAgmh29mj3ASQWNyZGA0nfd8AUv2eGEj1b/nyK8hhEsN49c9/Ba1ITAkmxm0/cOF7nmy01DTKAGlyWpqm22ASI/lcT5gcErMCXYM9+qGRANIvooaAVBeRDwOJYYxuaEryCNBtbi2LTgttAKSgsakQuENstQESYmIIIM00qoF0hKgFQNK9TQCJYbzRHmvv/zomAxPjRh/1/5/2iwsk+coyIOlyiZqFV3lGLWPsLA+ZHBKzAu0bSDV7fvCjX1kOJP27kkBiGKPbWQMZ6+gWUfRDo78O6Unh5+lEQLpik4TADEBCTIwOe6SBpO3RukAaM0mIYZz8/HtvRWIaMDFu0SHNNJK5otc2kGI1HNLTTWSSGMnnesjkkJgV6FaAdFQK8Xz0M79Sqn6jVYDEMEa3swYy1tHt0mh6P67tfnWBVP/GGEhHWLKApCvLCdwhttoACd3e/ssB0kwj1yG9HP00gWQyySsuB0gM47U+/97jeEwAJsbt2qMMkIQ36gLS3OcUA+n6mMRIPtdzJofErED7BlJNIwGkXxc1CqSaSUFFXwAkhjG6oRgG3xm6HRr9upb3yiG92kA6clELgGSeB6F7ngqHCaGb32oz9NFNTIxeIMn3LAOSeSQEQGIYb/H5d22yGfpMjFuxR9Pnv+X+3Y3X/QCpfs9aQPJOhZARwpdyHdceMurO8pzJITEr0J6AJEhjO6T3rYAUHwxxdLwewxjd3hrIWEc3MCc/DCD9vhLao62BZJRRvBC1Qze61WbcoyufGLM9ugQg1a24MZBgEsN47PPvuhWJQc/EuP6nqhNIR4iqg3WfmwMpPh7iqPKCkcwTWINGOCRmBbpEexQAyXRRAZCMY1XTQAoacuVFTQzjvQ22v3q6iC+OHBJCF2qPfv6rptEMJPlKCKS/f+bH0Y8m0zCQ5moLULQ/CNU/m3195JAQ2t/EkNmjZUD6hcSnDSQNpwBI3iER9dkQMOlih7EBoRMCqfn591sOznBnfb8VezQvIzN7fuN4nw0gGe/xgfT7Sggk3ZZ7NUC61pEc+6HfX5zQ4JJDYlagPdFIAKnmyt//67MNJOM9CSAZl1aEQKq7oDBJlwihx+nvjwkk5ZlYAwESuvlVo6jw2jQIpPrPGXFI85t9IBlHu1pxwuiOWrTpiHqYjlAkgEQOCSCtu3gx9y5/YpSkDtPfHwtImXhdDaSGr0oDaWZSEkjiJPIlYoj2DuMjDs0/JpBynuks03C/rUi3CqTn6ffnYiYwK0jZQLU9ygOp7at6gKSP0fOac9cF0rlYtdObG/+v+0nSqAaSGb4TTKrfcHIgkUPa3/5dAun5bAlJ8JOyOz+Op/7P5isJIP2nrz93QmjY1L9rLSDF2SnRDmUw6X36/RH/+T5lHxeOKuDQ/GMCSdimjGd6nNjjAqSeUaiBpFOUwOlSrU+sj+mxRst/+pweagD8RyMPSDWN1gWScY54C0jzb0wBaVdG6vxD8W6SNKqBVEsgamZSK9UEZgBSYkQmEpIen6BLZmKs7370Euy9UgGphkoGSNoereyQJuM8PbMjSnTI/v3XNZV5Pp6vOrTBdg0c+g9C9Y8JpKZtyqSayCEBpD4gmX7Ib3MT3pyNz4YeaBhI/8BTA+nnxRlIM40uH0jSJL1N//+ZfzH/9AN7Uwt1ISNZmqEf/JhAStqmTKrp2DOdGEjkkHa7f/f8kGebgqhxoVjRgcowWnpVAcmL1zWB9OuiWkDSTMoDqWZSXGRRnysxAqQxF5XM1V2qf5KfSeNH/GfGNi3wTOSQAFLPqI390PFRiQaQ1HC8LQLppSoTjsvv5etX9BIs/tNJIM00+oFNTaMaSEfQmrpNUheQzEOMdF9UHbX7y6QASFpjLmqH+Sfx11Y/DpDkm1u2aYFnAjMAaY00khUONjoPvGqca4HTiSoQlgOpWpR/aPT+53zTJJDEewaApJnULJdwi84DIP38q5P4GXNRSzJPfv5p42H5jytHNDomjQutnG0a9UznskE7TSPdPJC8SF3gh4LaG2/U5sbBhQY94vjb8nqEDKtGgVST5gc2NY0uE0iCSTNWj/Q6Hf30PJ9xF3Um52T9Gd82V4xXNITit5V1PdOJQ3PkkK4ihyQI5LQURH7IBNL9dJRNvWDntL7p6Y3ReYupt4xai2ldzpAHknhPJo0UrbZpIHmc84D09z9fpg4gDWAswE8Arcy+xCdTazB9//tf8dNES5Nbm3smckgAqXP9TdQsuECKh+O9s9W6pLMhXJYsdD/N6oPeFJFYScP2o/9o9AMkgRkTSIJGAZDE36J/1/y35IGkUadLLeo3t9HivS0JpLJqAUWHNGwyr2T+nKZtcoC0hmcCM9cGpEyN6UBwrOGHnJoF+aLXwVDnOZN1PqdC1JoGaMz9DETkzMX0P68w/2wPpJ8/fP7xgFT/XRkg1d1RTSD9QlE/jVnzA9HvMYE0kItaMfPkEmVFjBUn5xR7prLIM53vBgpySKd71ms95bYfCiyRQE7gh8zyU9szBWGHsi2HxvzQQvcTeJ1gHWwBSdBIEOLtz/mmzXidBpKmURNIJpbyQBLlfzJqZ6p+Gk0gBS7KA1JX5mkd27Rnz/TvFXJIACmXQ8r4oXTNQhigszATAamNqK4Wxe5u/67u1DH3k1wrRSQqMEn9QJpfiYE0p6PGgPS3PzcEUnyEhGiokqdezWdfZYCUcVHeFxpAa3PbVONnFYxNJ/NM5JBuC0hjTzzrh0SkLlezkINNHEYwf9fY9nBBv2pmiQkiPN6eOhlNOo7F2dt59Z4fGgkg/bBnAEg13oaBNDOpC0iiAlDW2uWB1Oui6i/OfI+XsjpDqinvopp/zlaeCczcHJAGoluL/FAjRte1+aphE5mfcSDFa0HApOSCkkk5vCbKveIU0cu/M9rNOJUC0p//5y0A0vyKySQTb0uAJE6O0EAKTpEQ50fYTDIfl3hbE0hd3BJfpQekVTxTo/RuFYyt7ZlOmxVOvk4O6dQOqaOoYdgPNc8maUfbet3PqnXYNX6a3T9NP9Sb+/GWsySQnIusAiAJ9iSBNKNoLSCJw141kLy+XXGExO85FCaQSr+Lqt+v3+OZrWSZ3+V6pu9NPJOVMyaHtG8g1TuLXt6U3DmD5qlT3X7ozjm9saNZb2H+9tutLFjYr2ruapPlCRkg6Y18XLPw4t9i9bd0/yBoFACpfkUDSXijdYGkyyUGgCSRY5420gRSF7eEc4pjfQs901BL0zKSreqZThK1I4d0uUUNgw7pfurzQ/fNArmS6wwfzf1soUzFdhCji91PsmJbh+PWA5Jmj3hFAGm2VhsBaT7QyASS17qrgTTj7bdJTjd6e6QR7XcBkJJBvEzBXsYznbOfaRXPZFc6XA5mCNmdJ2SX4dZQfsiq4Xb3TUGwbsU4Q1nkhwZqFvKwCcI7MWzMPLwfsvuh0bzc/9DoAoGkmdQFJCNqV5fkZIAkXFQAJAGtTKwvro94TbQ0va12dN4Gnuk7ewyEqnS4nBwSDmnlBhovNCfe0A2k7vzQcIHces5mCz+Ur9jugo3OGCXdz1MrKdICkmaPeKUGUm2tNgWSefDrYNSuCSQRBoi55UHL/E7Fb+zyTJnavBXUVaG6sKXJXRBOuXcnh3S5vqpk7jPN5IdWqOH+XtkSlTJywmneD3UlhPKwCUJAHpCcS+VXB5L4jVsDyTxqz+uX0mdA/JokD0hPTqI05pbHtkzmqR4PzwvyTNqFL77odsvon26Wms4CJHJIuwn0uUy6mzbzQ9vke4bL6ob9UD5G1wUbXbedAZJ1ssYPjR5/Do9rxet+3qyBVP/GkwFJH26UaeCt0WubJFEs2gRS/YcEQGpmnnSVed4zNY+BWGe+TCf0TCUT2lnl1+SQrghIHfVy+TajDfxQzZhMVH11P5SM0SVzP3pB7AXS47QikGoaXQKQdIW6MEnzRzoCkjb9MZAEigIgxZmnJZ4pPgbiIorx8p7Jht8Zlzsc0m6YZFuixl1eyRpus31vKIc0fNJPUL+ULFh4S68g2hLNq9hAOK7HIc00+gFSTZSfVwSNNJC0PToxkHTldzeQzJKcGEh14WgAJDOlpAN9SzyTeQxEHLVbU+t6pnOG7Mgh7aAUIlkr4Z/DvdwPFSfQ3DpeYaCILi5hyPuhuP+xXm4CIAUGyFzgdIfyekCaabQukLQGgFSfKBF3TUVRu+C+OLP7u36PCaQ64hdsIAY8U+2hvbBeHLUbKMbbUO0yhzMmh3BI+3RIi45dyDTZDXmj5mZwSYoo74dMINXrTgCkGSRN9xMcnOHfoGjG62pExUCaf28eSMde7r3+0WRKAsk85SgJpL8fqQmkwEWZx943A33DnimoIJ9fyTcwrR9yGPZM3ppwQcfZkUPaW8iuUS8XtBB1tTj0ROHyNUVdlijvh0RZVKZCwTM3gfvJXH4Y2iMPSDWNaiCZ1ioA0vyXzn+OBpKG0xIg6capUt0BKD6YCyQRAwiA1CyFaJaPNz2TeS6RTkPW4zY+g3ydY/FWtEoGtMghAaR2dYphibIpomaMblnGKJ45+ZDdQE9r4Icy1Qc90Tb5G+OTbe+NZ2ICaX5lRSAJFGWAVGMpAFJ80FEApPlDNoBUwlu374/9a5x5En4rX/jg9dgGZZlepUONqCXH4nXAabheqWwashvLUwCkzZ9+NJTav30sRTSwaeoMI+T70uOQXWCJzCvvkn4oU6EQA6leMfNAUkZ2Jsrd9G0CyQRJTaMmkOaw3hiQft6ZAZJZGah7p2r0SpOkyW3eIKehlck8eUG8YBcS9Nh6x0B4Tl0jKjh08dTtSo2ICDkkHFKyqGGLY0/TMqtaeyvo4pBdYImW+KFMQshL/zz65zadCkj1e2Ig1X/FMJDmv3RdINkmSWRBAiBlavMyQbzAM3m9uoJn4vSHZLOBzoCuX4M3EMM/UdSOHNI15pBWqOr26rwXaPiQBa+EoTmrAz80FqDTK5rOnHvnNsVAOtZMox8gadIMA0m8bSGQ6r86AJJ3uoRmkgDSvz98iq40FXdsz+/JZJ68kpPAM+WrIbzq8GLdbNuMSAcOaeE5eHfjtDvjWrcvk3TjQFqxy3UlAi1vKopnbHzIQqaVJBOgM9evJpCEAQqA9D0Je9QFpPo9HpD0e5YDqT6SPABSaR0Iq02Vm/Owy3aO35PJPMURPNMzaUo9dB4Ca1biBUc8DGeVxq3V2RwSOaTTJYTiF9cG0kI/JIbm4glw8Osa4ouLTPyIV17UrG6emFlTJw7QNSsUaiyVnoumdGrkH5BmGv0ASdLoz7cc2yMNJO89awHJK7TLHzAhonZ1iUfiAtMpApKXeaq/yqRnemi1NHk9al6ZQ7NjyQyJb1h6N53XIZXceTQAaemTLUNX8w3lkFbvPEgnjWosrdL3ajYViRxSssDJ80NxgC5ZoRAboMxFU9+TjtetBaQ5HbUdkH7+tABIzTMmWmkk8yoE/1Kfo+9lcoGUCeLlqyHqrYnOUMY3mCR3YG9DZz+ukFs6kUPaYpsOkDYEUoJYC6+EmEZQtPzmiPfJ8ExBBV2MH+/Un7EAnbcwZYq7kiX4FpB0yme+ceiIRtMUAKn+0zYFUs0kE0hmV68oWNcmyVoZS/uWufupXQoRBPHq/EoSUaL5ySsNrwtn6pGcaVdaWHrXPUknckgAaQU/u9KJv6M1db3HRHpVDCVxSliAn+DUn0wFXSbjbQApvI03Dqh+Tv+Wwe+1gBSYrS2ANDMpDyRRsy6ANOfMWjWi5lOd4jtP3SCeiApmInvmwRDNMgdz9OpacN1s15sfWqco/Gw3UJBD2iqHdCogbawl3kgXNZh9r0FYw2wz0viZZ3szRpesCa7XsghIx8tiBkjfkwbS/3/1dVTmUF8SfkQjB0g1jU4GJH1CebOxVzRRlePDKarB8fXnp+QulHNq8+qqUQGk2DaZkT2z3tLb9AS3qsdZpYHSu6DubiCY4VTikUO6dYeUTiNtX0Q3dlLqe6KCKCiiM0sYRN64qyo38EMekOqVqwGk5nWIRQPpyB6FQBKvaNjUNDolkOIav+KcNBEA6d8bYiAJaHmXcFe/q0kj70JLYZFFsO4+fRRv0K5Uj+e49G6s7Oh9eWKJHBJA6mhFykTk+gfl6zReV+oVsDb7Xuu/WlfN6nKmfIooKFjQATpvqWoAKbpU5ohGFZD+0ujrt+7ulz07AVJskpJAskySF3D+qn68ncG3DaTANgXVEProvBpReqR5Zw7FcTyvW1ZsDbsuUnpfrQzvvC0uOKS9AOk7DLsP6dUJ040FDd7V1k83HplVDHFJ97OPH6+GOx+gi+/ebQBJPHzbHuWBpF+J43UXBSTvr9YJMMskmRWhXz6Q/MzT7/cYUMrZiJinctSv6GHmVXgGcbygCnyV5qS3pV205JAAUr7Q7nsdYyTq3LStSeZU4zajZrwu32b06ODHq+E2C3lTwZw4ke4B6euXKHM5gw8kyZ4WkOZY33mBNJ97tBxIqrRhHtiff34CIAWBvu/INtXWNhOqNest9RgLaGR6o5fwDNYlzUlLsFTBCW+076KGaVpqeHtakYoVZM/p+ThhE4zdrpvEmm1GzdIGPWn1MXQit9xVuRsH6LIlc00gfZnxunkd/0ujmUkaSOqVIxotAJIzHEaAVDOptM6bMEoKq/Yp9Yk+qx8TSMI5lQSNvhuppnkeNWv9S7F7qPV9WrpZ+0UVgnt1dwPNSeaUHMDS3YYHKGxR6gWQzhladbzRgsCxMDH5BFK8QdN/rD5DRRz8VXd4vFh31ZglT5nexnag5lv2URpAqhfElkMS9ugwGUCyzJAHJPEb80ASURgDfhWZuoBkng87AKRjJn2GQPKCeAJFnzlKFXU6kdV1q8+C0u0B9eZJtCsJ26Tv+osPYM03J3m14O+TEZnPJJTIIQGkBUUNy6oY4pvETIfk1TV48yroe9VVDF4YRDeFmCmioGbBBZJ+niaQ6pWxD0iGPdoSSL9G7een6cYUSJpAck/kazVUiZbeHJD+04cFpK9qS1H/xoRn0rFZ3XWrz273jvMICsS9cgbd8+A1Jy00SWLWJ+B0ylATOaRdA2mBN3qZDBSJ4dtrjw6TG7XLnJQaZIyaTApK5ryaBbtcO7FUubEjP6v3qfrqaxodJlFNJ1+pKXVMshhIEkVJIE1HV62fGkjfkx+yK/9oFABJ/8b6e/kc77rNnKXbpJF5oMOzs1fLVDok94jLSu/wRrcOpDJ45neop6m7yDtfZmoeXqfrvM02I3PbGDBpXh3Mq/OSNQs6px15nRhI89pnZeNqe/TziIQ9ygOp/o0hkI5AOAak+c3HV9zmi87rll6vyVdWeUQ5pBlFHxaTAmul6yMyPnhKdEBbiSXh2uvUUXyggzBJYo/4NnXUGXmnpYg/LR27I4d000Caum9FWlbk/eqfnTpQVte0R16ArhRZxVDPWDG3xRJQrFNQUzULYmEKyxMaQPqUZHqbpD0SQKopVdPoYIfRkkD6peByIFVYygCpmMcg6baqGEh//0aB+Q8fSLVtMr8L0zOVsII8cx6HlVgSMWTRoP1kGaPn6SiG1jRJzTqjTLdsssDhYUMYlCs6sgEgDel5kkx6naIi766uo3e/ZDxgkpifL87lEaLLNS6Cup+imgU3Rmdm5jK5dGsRfJuy8bpVgXREo7WA9D2tDCSREquZ9CnG9uHPjwckwarSolHtmeIKclFFWezutHt1mrgOHXuF4LFJaiZ0B9JImkZvx9VDL6c7QIgc0vUBafJ62Y6sw7NVt6bP2O4a9M2j6urtmL5OImaSOYdF+VyyTSTwQzaQdEjHyxgVB0hWTk6sDoJGh6rOTbwignghkAwarQokzRsDSF9TwKQUkI5M0qH6KRaNNKLqLyLwTLqlyUOUjuuGzsnrTBKldwGNguMb8p0YQausHqIvZzjzu1zRUd83AaSeVqSeQgav5ajpkLzh3vRDdRTiTfVhmAG6krgqot0ponevTT9Ur1kekPQO/Xi9e1Ox0PmhvU3dQPKST1/qWLzDtC2Q/v2BDSD5p/NFtm+uhpcmSQPp75jzgVT8IF7xNxlxoYpT4aJjwmZnksgtlWKE7HRn0vDZDc0T9ztN0rnideSQ9hayu2uR6ckCQLEOlMs7JO8KPu+oOh2OEPZIxNaLdRBDzKQaP8ahcyUsotNAihcvM3BkxesCIJmrhnglDaSj92wNpE/j0lsJpOA8pBBIVtROAOkHRe8+kIrjmYpTL95saQrqLa2OWt2ZZFY66JCdPr5h2CQFOaSYRmLdqEowyCEBpJSLciN1oqbOZFKzE3ZJ45FGUXAQgyhAmmevKKsTRXQzgXTLiLl8GKvMZ4JJpQWkg209XydJowBI+lFPfjWEcBX1e04AJHWr0yCQpkm3VR3VJco0Uk2j954gXvFr8z4SvWWlkViqQ3zeqay60kGfJyRMUsChvEMK0ki6rsGM3T2dggrFOneNkN0OgXR/vF4Hdd4v1m6o2QmbDAiUEmGpZlLx7zcSt0Q/OodaPpgdIZlD5zIxuk+Vh/iosOQBqVo0xYEUAkhvPSc3i1cUkIz3nAZIn1MDSMmGXxNIRmmDptF7OohXErV5okSlOJWWVmJJZ5XMQnCPRrph1pukww6p+Ceu6tNSXibTJJFDIoe0oNDuaZIhu5fJjlDHDsncyOcd0puqZ9V7wxfr7iLdYNguWEj0Nsr9b0mUCGf24Icjk6Tjdbp+N2ZPHkj6d50QSEZVhf6E4o/V9RpFnaJUd1AdwUYDqYRBvOIjqjiIahbjFT+OV4xC8Dvl7PW54IJG3iRd6JDMRG/GIV1AKxI5pF2F7B7UFd1mG2xy86X7wAcckmePXsOyulKO7pIQPimo6o7wY/a0mn7oU9UpBMtZsYH0pv6lByv8kgGSfiW2R6cH0sG6b3A5kA6TMknvVrxu2DN532mzGK+E99g6JwwJGj04Y75rkuYdkteubha+il9U1wySQ7ppIGXrGh4m3cXWYFJz8xX3NCQdkviFaLDQGV2zfqEOd9y1ul9lS2Ozp9VrUtHJcLF46R26Y4+epzaQ5vmfQVS9cL9NFwGkg3XloBe18/quSmkBqcbP3wftA8nzTCVRLJ6kkR5s1vXBpRxd9+fR6EnVuQ07pKBfMHZIHo2eT9QhRA7pWkzSg0UmUUvdFZ42T8pa4pB0dYNoDNSt7PrOiHmGyyI663obFz+Zo8/i9SsIHFn/TP2Qn6elQKof7yUAyTzC3DwYqQkk0SxsZ5Le/v1434XnmYKw3qfVwOQllooK4lmF4HHIzgytlyIPMQkcUrNdvYQHenmtgZpJ/35xyiWOHNKe00hmyE6fy5Dvcsg0fo+lTF+dEqNHtVv0LtOTm1OzqjvfbvKRjtH1AEn8Az0g1U8mRtShKs+LiyPOAqSDe5aEDSRdRqjbs2Yg/Q7Rt+OfEuaTmnkmUcKnLbI+q1BnlZw+WTFidcgucEheL3m8HdTt6u9Tu1lQ9yM6NDpvGokc0j7TSI/WYIodUum5cmKgqPTNqiDSITtd5619Uvsu1++QScWp+m3Gc+ql7cNJZvz7CrQLFDSKgWQiqn7OQXFEE0gZDQMpLrvwOn9NIHnJSxtI9f9lAskL64ljIMzq8JI44kGV3un904NzqbFOI5knTMbbxEy7+vvULoU1u6CeN2xFSv6Zu3BLAEmlkR4Vk3odUjJC3eWQ4gh1/Qtd532UGEuWeuseoy+rzLeEXa5BjM7ccR8DSbDWA5IofM8AqaZRHkhm9aP4c/RgWBdIh0Q1R20BxWCzTZL5StIzHRSQMqG8L8celcb9s2bIzqOROGEyqGIIyureW/M645CO4+rkkABSziE9ql94DqneAb0lyJTvmDHD06ZDerGQ+eBcJ3GvzjWXt7vqsjqzx+grXRP8nojRvUkkP0yNeJ0uLBS3QHmIWgIkbaqaQPKwlARSKRGQprAjWAPpoG9JeFvmmZbQyMwqWbFis1v2wToCvM71eg4p3iDGe8SBI48vwyGRQ9ptDunxOOT1mO4DLwsOy0qapDe/fEjUXOiyuqJPBjIzRmZZ3bd1c2ivHwq22GKTfpypFuBZBUgeWjwg1YvaGJDqgZEH0ptToRCYJO+f2TZJJpA8zyTq9MTpD8U6esMrc9D91McHOtypuruHyTBJ9YlZOgdZSrvUKLlHFGd6NY88NqthySEBpCy3Mg7JTCPp6oN3697YrksqvQtX9IGqYjbWTBJ13mb22KjBja9r8/CTrFnQQHL6wMSJfIJGz+qS3BcfUfMTfk47pLrSbzmQ6tUqCSTvANlk1E7XEBZ9lZwAUuyZzNK7g1/pILJKxW9XKuHVWa2Qna6u9lA0IC9G5x0v6e1ZLYe0xa/JIV0RkAYc0hYmSawp9S9ewjMczaxvXedt1tcaVQzxTUVF3WLQ5YfMBVEByazUyABJv1LTKA+k+nr4tYBkMikOKpbiniXRRJT4BxZ9g6r4RjzPZH6hXnW4iOaZ2xezOjym0TGE9GENsm4jtEe9DilIHZn3AZ7WIZnL3U7TSNcPpI40kumQ4uOEzfMUzIB10iEdwtklAnfFOpqhj0lFncrsNTOWYyAd/Hq52A+9WWRSKBU0erTsUR5IXn2EBpL2RqsD6fUYS8NAimvcTSAV775t/dXo2F3JHfFwSFy/FBxy+FWNSatV1nRIz8dHOwZM6t0UxheVmfmqF7VKHG9qT7nEkUPacxrJdEjJNJLeJYkVocsnibOz9OEF3sl1esbq1kIZBjEzRmKB0McuHPzTo9/TUaBcvC4JJA9ReSDVf++mQJr/zM9E2UXQJBADKRNfinJIcRrJK8Y7yDMJ3axScc7Ba4XsTIf07Nw3EVTQmTV18VbS7BkI7NGLvYxQ+Y1D6nRIj2prY66DGRQlTVJx7kvWEfDXY4ckonaePfJu6owyRsVvMzpYS0/J+SH1yoN1inNxbmN7rhaj+ot48LNKgmQmkMSffwIgvfqwyQQVX1qdWM+qquJ5ckzSm/WfTUqZxXiH48RScQ/PlYPqS41GQSOngb2rSiifNPIajzIXlenKo6dtD2ugqOF6K7+9wF1Q1PDqnDWnTdJYZrUpfaBq/QtxIJjce5ZWxsgrqzuo1ec9EQV6Mz6/tnQie3TvFBNmgFTT6NnP64j3nAZIr630T3CSbFxYqCs4hP/LRu3eWpUO4pVDwjnp+kxzb2RFmB+srsEXq5tV/2czD/eePoPfQ5GO2lmRDHJIAKn9a8MhFXVMnNgBeSbJ60fpKjwNCoReJ5tG2iEVHbITR9V9WmtBvqzuEOaQSqu2WH3mO+t60BhIJqJMe+QBSb/nlEB69tM/8dl9TSAJkySA9DAlyupKP6KCrFI5PuXBu+5PM2kyegMerVzO2zTojQ5TtvFIYykualDnG5FDun4gNcdbh0PSaaT6xFJd1CC2SLKW6fiepIHOpGbdqnZIv0zyzk71mFSsg+kOflW3VxDs+6GqX1SuMvOH1L2986Jcn4T0Yr2SB5LueToXkJ6dSwibQHrx02kaSMU5ecRWkPMLEBV7o3fVISBCdgGNjj/2Y0/Irmv/JwJ0uvHo1al9TUbtyCHhkLI5JG2S9L3gzaKGVyf5qYd7pvSuK2pnB9lFJ6yuqROXGOmLq3W6KLBE7z0hu29pj9YCkq4g1wu0WS5xLiCZt2w0j+8zmaRDzR6QXJNUQrcUIEpXtRwsVol7lcwqO7+oIbmHyxcQNcvqtBl6dR57OT7YRSR6n8ghAaSxViSx0OtbKV/8MdrsTBpoTvIkIooGjXTGqFgXkAe3u5qHxAxYIm2Pvg17JLJHdVevOLxcv6KDeCaQgvq9MwLp2Q/5amg1O4LNf7KIfKaW+K4DHYo1GPTeRdzy51XZFcMbDZAmKKsLihreW8WKr34MX4D/uD3j9OkJQnb7BFIdr3u0bhjyOgx0+Fjfqrduc1KgBpPEVWkl4ZN07OWtxxK9qWqu76O/fV0gCc+kYVPUze6XA6RMlivTg2XW49T/3shwvLXL9F0aBec7FCeHpKvsRCtSUSU5i2vqDlO0R6xfeVN9F7qEQVQxPFtnXG1Z1EAO6XQJofjF9QvtTBrVFuQlrL7rck5jedc8jR68KLwoYTADdMW5OeLgrzt6RWs6pC9ZClibOXHbes2eB+eVDJBqGi0BkusoFgNJx3szQAqids+T3c/QVULthvU0xnQcr/gm6eCH7IqKNqenSW/GSCeNkvYoCNmVo/vLNw3Zlau4yLxcvqEp1oHqvU+2L430eHx0ozZJYmkIKh1MFC2vu8v7JCPuoRs+PDNU/JBLSfih4hDrWwLJuJ+pdNsjzzPF9igPJC3954h47zCQHp2K7fw5fsU/hCllkvJfcbFcVFB6V5zmJEGjrz4aJSdIPmMk7pWIy+riBN72RQ3XE83aS4TtdEDSldM1jZ6cu8Nf/LuTxRbbrLsbaN/LoMh2SF9WRVNRHfXNjFGzKEvrQ9mjL8seTYY9SgJJv1IvDfc5h/Q82YuO/sNNIIl+XtFHmQTSo1WxHZvyOIsWRO0eJiuE27RKJXe+Q1EX/RWrVVbTqIx4o7E2o6Cq+9W6uLkO2YlvpBS5c7Ui/+SQAFIuZCeWPBGye/LvRxgL2Yk1a63SO8MeiVfMkJ3nkzIZoy6peJ2gkbRH3+qrmbKIqmnUCySxZA8ASXy8LiB5x5wHZ1XouKV4AsLG3SVDdu+JrFIQx3u3kknz6KpN0vH/NmnU3Ml5hwO9J+q8k2bI80NPxy3eGxfaZZZNgDT+ZIW9XQ6kVCuSWNpOELLTIYK1skrtogYzZKeTRvlYTZNMzrnOAZB+CwKt5qoYUfVZZzXeBDYefQvStF9e1E4DqR5aeSA9+t1UXmHhg7W1Mg1i7U0fpk6H1HTGcchO06jYDmlh0ijuTMrMx7jUO47RPVkNjudrRSKHNF7RcJ4cUmCSnqzC2bpbVph0s+7uzYnjvYXnOQaJpT6fVCwmFeWTzKTRWw4/mXhd0HFSHUBuAkm8MwMkHf2LgRQE6FYB0oMaA2NlF3kgPSjGu0BqMuktMRK8kF05dkt1OcOhm0bB+O+q8463iWbsXcfnzRIGHVOpvlDSRRQ1TFmHZJoks0XJtE1BEM+L45UiS+9WPvhO97pnQnZm32tJ1wRrFHk1vpaBu1fnSnhAMj3T/H/VNIqBJOr9tgOSCOJlgKQHWFBb+DBFQLo/DiIdHSulKvK7fZKO45lVdrFDSn+A5C7NDNmZbUb6IIaFITu9dGwJpIXrJEC6SCDpVUMsDfOAywfxXqZ2HO/N2r6V/ttm20zSRQ0mirz8QZzoNmlU/6+OGU5+m5Q4VGKSQPI8kweke3/Fn4v91gLSY4sT+cL0e2Xjeks8bCCJDrAvn0mHMFSbrGsQf1qNpQSNNHKWXyfhZYxeJzfn1xWye7JjsOSQbh1I43UN+oA73Zykb6kwK3FfEyE7M6u0jlvyHJJ5BnNwUmq8EsU0ytgjD0iTBJKJqCBeZwJJ0+jEQNIrmgkk84TZ+E+OTVL95O/05VhmrDWzIwkaY/X150XdYNJTUJcpefDw8z41SrpfnZSwvqjzyYn6njZkl0mTA6TxNJJOJi1JCXabpHkD/tgfsgs6RbyQndmAOdauFE3UyUKCeQOsWEq6vNG7wyTdAvlh3T7wpWjUD6R5VY2BJFzCWYA0/41NIJln+sV5ozidZpy9K5j0oZhk1tRlLr7S+5u6BTvscOi6Xq9ZROf1GJmXSojJ69V5P1lXeYl85PYhO3JI+/mnLqlrEKtDELJLlt7FAYFmyG4F6ajdwTkHsyubXY7bTXQXZAZImXjdZL9yRKMWkPSKfEYg6YugTCDd9zQFG8+kWEAS/adfqtqlhFwpnUUN7+PGqMsPBQ1G3okMpbgZoxd/susFQVvw42+KHBJA6qxreHBLNuXIMzvgvNK7VyerFNyllGnoG6zE+3Ji+s2ihqC6t6gWSK8n37wORwOp/DvTKLZHonz522WSbM86IZDMSJr4e5tA8g5SsisP9WMpVtRucgKqZrXLQHOSSbKPVP9QxhKZvirYyXkXkCeLvIMAnROjE1/NaZY4gHTRQOpuRbp3jm9wEpUjzulV3U3ebFdarRKvrrI1UdRb71ssh+T15H/49ujjaPX8PfVVlYbbQbzvBJDUb7wQIN05W2yTqQaQzOJD69qRe/MxmhX5ukhyiUl6Pz6sYSVLVFpNr17jkRmiMIMWdcboSdV5i6Syvnv6OBFADgkg9YTsmofWjNEok1V6CxH15rildYrxgrOC4qWnqMxTcbogYyDVm3EPSGZ53vx/fTeA5FmrywKScylU+/QKv/7QjoKKJxkXvOgEYdIkmcnFBX4oY4mKdb1epu/1xWkU007o6eJCduSQrg5IwT7Uc+JB6d2zOik8yCq9+ogK7p+tgbRIXtXTe8Ih6fvZ4o6TD5VY0pQSdzU1gVTaQAqsVReQMloKpOPRZQPp2/FDTsWHC6T6rocPp+ClWYHZjOW+b5Uiypcw6BdfJruK4cVpFFvCJKJ2AGkQSHXILliPvPTSk3/9uZlVem0hKojaJYMYWc906Fl0zEqqYl1XcVBLm04sadv0qYCk19Dp+CJ2B0i2IUgDSeq7atYRq7xY8Uu7ZdUFknMTR7tl2Cz6ME3Sl38XiVntstAhWZZowA8FVd1v/undxTkpVeDHDGOYsXdxgEv9yoNzs9eWUTtySNeYQ7LbNUrjVE2xRXqa7Ff0yH512pVE7UOmOmiTYrxi3Qkb3GBdrBPBaxrpw561bfpQNPp0SsNrGn06TAp+YwtIMt8W4Cd+pbh8susa1MeLgBRUIcZMMp/Mh8WkcvwNJh3SZn4oY4m0KyrhsQselop1endcvGBuXlXohRwSDmlZyM7zRg9TwxsFvUrJKTHWP5uZ1SOHPjQdUv36Qa1lglIHRSMPSF8WV7SR+g59QBpIqdaosVdKN5CMkZnp04p9ZFEljsXyqSIFmNmp+JZodT8UT4pk+MG8Blq0GQVT2zz4w1w3qm+QjNFNAym5gzhCkd4s66PAROldbdK9rNJza4PmISrTP+sV463jmTIOSSxMemddrPuWPlrxOpMrJrdie9QC0pEr2ghIX3LwtIH0JUegbQQnp2ROWMm671UnjYpzOZb5/Q6nLEMgLfFDxbl9ykzQavzEGaNM0qiOEotzm6pcADkkgJQO2enNcsY5mWlMfTmKTiy9HFeRxpV4+WK8TANTvqUplbvWuDpYGSkziCfKHGrGHBxCfPpAKpYD+ArrxYuqe94OSF/yGro2kLxjZ71urRK6yeIE6MwqBp1JekvBxrsoL9geecMy74cylqgU46j1IIyhLVGQNDJj/tuH7CYaY68sjWSjaJhGzY2Vd92fRlS+GC9O6m6VZyqJrFJdC66DeLrMoabRwcnAe0AKum698jz9nhMA6fhSqBSQvtx2K7cc0XtipjE9qBN9wnSR13/d1dPa1UKU9EPeSXRBtcKzf7SgrmKIk0ZeL/bGIbvm+gaQdphGulMhu6D0rlj3nplZpcyxQ96U8M6+yx+Lt5Zn0otOwzN5teACVDo69Kle+bLKkc3ah480kAIXdUogfckhFwHpKwSSWZH45QdCYyZ1huBKyd5rHDMp3lrl/ZA+iS4uoiv+wXSPVgrZ7zSSIVYRbiGHBJA6emNjn2S+YmaV9H7KO3aoGTQwK/HiY/G28Ew1pbK26d2K2r37cbyD84qgkQekjxyQipVEOSOQxAlyTSDpkrnerJuZMXpvwyZ2P5mahXhjtIUfChK05rELXkfRo3+URpA0spaUky1xO4IfQMpF7bT7Th3l4ieW9GWgZu1DUIknaoTGPNNbuqIpsE3dReSCRrrM4eC88mVRKt7yf/jrcvM9ZwHSl3+LrlmfXRwgeXWJXn5uA43VLBTnYoheP9RV1Z0JqusQiG4zCpNGIjBLDgkg5VqRahTdqdF2N6UalTwambstXfvgHfHg7fUyM/Y1HQzpsk2LKsiT9ih4sUbRIQGkPLTOC6SPCksBkMxTLepnUiwgtSoRFrofb9gEQMpcJd7cb2WmSVDV7fWzmwfTBW1G99btU2pVIYcEkHqOs6tN0r2VVRIxYp3SFEM531HrVeLF/eSix9YDkg5rbFeeN96K2wWk0mppCm4jvGQgeZdFfSUK5Td2P/NuIzMw4mMYvRidvo3F9EPxpHhWkyI4c8Esoiul0WPktBnJaL9qLSBjBJBGQ3bJOJ5+Ue+nvEPw4qDBi3UjbZJSzWqIsVRT3jyN15Qbq2Ai1fRhLdZJaDWBNKCFQPpoHanwkTo5e133E9dtNxNCXTULZqI0GY4LaoXyRXReVENfD2/i5+5sITtySLtnkjTXXtdkk0b5gx7iSjzvzKG4eymYosPleeYylIGWBtLae/UWbA6J93iQEBK/6yPxilYvkD7KadQFpGb1QQCbsZqFZn4o7nJ9bl0Yn8/7qoPpGhmj+hD3E0btyCHtPo1klTm1CsHFi3FiydttmTfSBtu6gFIZzxQnhzPrxZLM01hn7riv0t2dmTxTxld9LEBUE35DIBmzO8mmtLz76R08+ZqFjB8KClaDqu6giO7BP3zd26TeSfzo7rcT77nJIe3TIZlt/GKzY7ryZmIpWeagTyFqzrTnRGTP3GA2j4EY2OR2lUuYQLpZjVUWrAWkAQOUGRimHc8E6Jo1C0k/VNS5qHFVty6iax6WejfZjUfyPKqjhYWkEUDKA6lECaTiHMfZas9ulDl4GzTzivTVPVNwkbO57gysTb0W6r0zGLh84b4pDQBpYBcSB9+C92RqFuLxH5+LGlR1C/zow3A9/ETrg/HEmqG23l/v1BsBpM6Q3Z04z7+VWLr3b542yxyafeB6cxc3MOU9U6alyVyDMtCKN9fDLmqT04829iindDZJ99Ms5e8yQK892aD4ssqkuY9D2SV3Lqo+XsErotMHtMfb0yhkRw4JIGVzSN7Jm1NHYskzTOY12KLHu0mjp7CBKemZvL1nHD+JA30BgV6nEReV74Jaa5leApITWJl1geR9F571yQApCLtlgm+lRO9plsw1/dCDdS6qxo94RVcxePgJblmUKwk5JICUbUUSHHKGV6uyU9Y+JEe/Li1NVocnPVNcnldy95gF0Ooql2iGgJa7qK6q5UvDxsJPOxyOi91PbIDi6rgYNs/+PilTMtfctMXhuIfwHCD/2IXW/tV+D0kjgJTvjTUHk1ULfjc1bLt5MXYcH9Av1nPsYRrxTM/h4eJmbCQO9DXLomIgmQArzvlGeSYl5aW1tguRncDZJL3OQD1ClwFKBt9i2DypSHKmZC62RMlwXKajI1FE5xijMxQ1kEO6AocUR+3CdqUAUQ9OJd6DdZp4PG3ynimOcuiVInhPV7Ve7KKS3MoX9enWqCVgW2i/LgRImTK2ruK3ZntQJmnkVcE1vU7mPWaKKNjqxU1F9+Hp3W4RXQnv3NrWIc1/MjmknTHJ/LVTD7MYUV4l3oN18lXSM9WgCjyTV5v3nH5P5tjK4KSiuGKiNx01Fg9cAqTLqYhbEUhjaIlh85Ko2B4IvokTfYL3xCkiXbmQbyoaKaITK4Y8s+PE225ySOesXAiU++3iuBe9zelFVHE3X/rFB3UQVib51OWZnnPvSQb6vJOKMsmnsXTUEiD1aowBva/km3jij7oESB5aku7Hqz5oAsnbQulDTh9bNQuZFFE+HHc/NYroomsVFy1E5JCI2s1AEjSKLXkLUbrM4d45TdyjVHKmZfJMz8f15c3iiGQQ7yWdoMrgZwxj+bDeWmA7AaIy//BMLG4MSL3up9mgaiaEkgnRzEn5XSmie/9c1PZpllNrk1oyJ+2SQwJI+Vak2SrF2x8fUWJjdZejVOyZzLBeJs/05HTdDhRHeHG8TPIp46K6gJQBT3I1vzQgxXXVC71Opvog437yBshLCAV+qK5HMI9UaLYQNZsxPNMTHkPnFNF5EkDa1iSRQ9pfQK/HIeVDdn7zbBx9Do7FW9EzeV23zW72oMmpWdQX1+89T91A8uzUsK9aHUj5AOAq6Z9hr/M8Nbxp0v08qT8nBtKT6m0woRUf+fg45Ie8qdTcMiaaiqwFwYyylK0dEjmkaw3ZlWAkJZpnRTx6iiodNKLuW8mnMc/kxT1KadimfKzPi9VkoPUSYiyuRF8LSAsVfJ7Yr+SVaf0ZQMtzZ8PQc6uUpmmAguBbcMRcKS6QMiVzcYqoY/cZV3h7ITvSSFcBJFERN/yN9oTs4mvWTEueO+KhHSLww3oZz/QQHgwRn+76uCDWF199lgeSWNQGMBYAKUmU+E8+7ytNVo15nd7cjwebzAlyesg9tqx8vNkaKJlLpYgmBzZTmDEqrfDdSXNIewnflR3RyAuM9j7o/qIGe2uj3vOdOOIhLMaLG5i6PFNQm2ceA+EBKRnrC6rMk0BqxnzGgNTkzS7wM5za6fU6ydxPM/2TGRgmkOJrWYIjFYb90J16T9QX71mibAnDiVuRyCHtA0j9dQ2lNeAyQzkT1gsbmBZ6pqRt8paDDLQya1OciHqaxoGkNYaxXQPJfGLJh5N3P71fehwifkzE6IIAXdxBkfFD0dGoHpOSfshLOJ2oroEc0ua0XwikZSYpzi31FuO1wnrNUoiMZ0rapmbApOtqwa7NcsZFxdGkdX3V9QEptjtdxQjBFzqnCTMBOp0Q6o3RxUcqdPkhu6xuuR9K4YrUEUAac0heEacXsmsW4/lhPX2U+IBn6rJNzdqHDLTW2lBn8DOGsd7l/hK0BZCeWojKA8mrkWkCSY/AZhFdcwe20A9FXa4DfqhksEQOaU9A0hy6AIcUJJa8Ix5CP5Q5SjzvmZK2Ka4X9/xQ/B5vget1UWaF3gDGxgJ9mcrA7V6JLYin5UAKYmt5IHntQTGQNGziIrpkT6t3ok+3H+q1RN3QIod060BKtCJ1bX/yxXg5zxTEGbyNXleqqVkvrlelDLT08Xp5F/UUJhgWAilGziqo2w5IvXGzJfG3pi2OG4bi9qBSGkAyR2kco0v1tDpR9E38UMoVnQZI5JA2qWUQ39w5QnbjVTR+j2146Eiyo7bLNsVH55krSPweczedgVZspHoxFpx4lMlXXQeQkr6qC0hm8duD+sOT7icgTQCbu6EYXftIhXX90Di6yBvtvg/ptEDKnpOYqMTTozZTCuF4Jq8WKDgGovhH5wUoakIr47Q8F5UvoMhkp8bCg9cKpGajT9LurO5+7nsqtr0B7wJpam34tvBDYud6oRDCIW31NBd+u6Xjmr6yeBs15pkmu9LBvX8lba3iIF7wnjFojbmozPlG+cL0rYG0RCcGUtPuJKuxl7ufOIwcFMjFfeVugjZuMxrzQx0MO28hGA5pB5HAISD1GqbmyPbePFBBnm5pCi5j7so8beeivMKtuJl3LSD16jH9eYJzm5JaHUjiu+iNyDXdj7d3yQToAiBlbyHyWohOpAvZweOQdmO21ihtyG+seivIxw7U8j2TV+SagVZmTfE4lHRRHoEGMNYb6OsNIZ7yFY/xQfxtCZCaf12X+8nvZqKIdAmB1HV3+EI/RF8RQLpoIA1kmLqG+xqeaWTjmQjiZaIuSSAFS95CIMVL6vCffC4gPYSvBHwd/pMDungFcgFsPOfUhk1JF8jlL8rr7ejYN4dwSLdjknrrGpoZpuWeKXd03l0aWnFk5m7qc1EP4RU1Y0DKbOfXQt1lAsl8JQgzjgEpOBnB26yMDbmOArlkzUJX+idliXadmABI+/621o4wf2/gmRIhddcPTY1qPa8IIumiluSiMqGk5Wv3VQKp2egTP8Cx9E++PMH8vR37rUxad7jJ/ar8EA7pmt3rJXmm+B7luPChF1q5zNOS/PZ9mkBjJFtokk6gEwDpPnEWXG89Qv68uHWyQXk/NLBBJD8EkHYbTj25Z0peyDQtgtZA5mnARQUmaWBlXLJ2X8zWuGO8rA6k2Lh0ASk2QH0ButgGLalZoHcVIF11fu8knqkkPFPXXcuJdsJ40fGWm7yRum/tqZcD6erWnTarlgMp5koHkKbErULTUDZo+RbwCjlEDolvawvbtOTwku+hjefUHcSLj4pIGqlhjDUrJnqWmKvZEUdjahhIGUR1AClZC7dixfZtFW2XxYfaAKTdO6RlcFreGR57prFewmXJp6aR6sVY7KsIsywZjb1AusujJV+hIPBzEe2rDCqAdD1ASqwF+TMgereHU4tbDn5SZ64MGKnRVQ/2nGVwDobjxtI/U+ti1tX8EF83QAJIwzG9hbnZJLemVsBkbN3pdFFemRaLyDkGc9tLjbifUx/hc5vjhxwS39a5nNNa50J+5wr2lkT/Lh0/kG+N7dRwhcJqh5zyHZFDAkgndk5l2SHE37kmp4VRl0wuiuXjdlgVhI7HBzPbFEJ2AOmSndPyjedwxUTTRTG3gVbJo4vHBZAA0hWYpzJwcctQ5qnhophpjGTEwABI7cX9GmMjHiHWCtZfefES6zu6SiCRQ2Ld2YWL2rBaicUdsWIggHSdw4spgZiACCAxHxBiMCP5tC/81/saGOSQmMaI9Z3Fve/XV/B4ARLrDg8ZsbhfyeKOABIjjFnB4n4lizsjGQEkpgSLO4s7YokDSJf6be2vd4zFnWmM0LLlAiCxuLO4I4ThQLcNpCs7JospgVjfEUBiPiDEYEYMDIC0pXliyCLWd3T1I5kcEosO4jkjRjK6UiCZ6Z8lOSHSSAgxkhFAWjp85zu+lgxxpgRicUcMDIC0zoNeDiRmMmJ9R1c/kskh7QNIDFkWd4QYyQAJIDErEOs7QjsHkudDcUiIxR2hPY6NazhKkhwSYn1HqDmYySGdYqXAIbG4I8RgvoZnewWjgRwSQqzvCCCdYeyaR6MuPCyVKYFY3BEDAyBdEOd4Doj1HV3xSCaHxLqDeMiIkYwA0lWPMGYFYvYhgMSUQIiRjBgbAGmzr4qZjFjfEascQGLd4SEjxGBGAGm3w4spgZiACCAxHxBiMCMGBkBiGiMGBkJDI5kcEusO4iEjRjICSNc+wpgViNmHABJTAiFGMmJsAKTNvipmMmJ9RwxmgMRXxUNGiMF880+VR7Df4cWUQExABJCYDwgxmBEDAyBt9lUxjRHrO2IkAyS+LR4yQozkm3+qPIJdjzBmBWL2IYDElECIkYwYGABps2+LmYxY39EWI+c0vy4JASTWHcRDRntd9HekvU9AVod9r5Ws72h3i/7VLPGsGACJxR2x6F/nLn53ExAgAaRtvyqYxKJ/Hbt41ko+MEDCIaHr3MWzVvKZecgAiW8r+pw7XeKZxnxgHjKfGSDtb5+eWeKZxnxmHjIfGCBhkvjATGM+MA+ZzwyQGGR8YD4zD5kPDJAAEh+YacwH5jPzkAFS6okvOSSDWcFn5gPzma/1IV/6I71ufzMwYpgVfGY+MJ8ZASSAxNLDB2ZxRwAJILH08JlZ3xECSAAJICGEEEACSAghBJAAEkIInXaF9A58uYQb/AASQgits8THL17sank5yyZAQghd7hb+wtd3c8HZyyoEkM62YUEI7XFPeeHre+YyqstciIID+AESQuikC9DFbtoAEkBCCA2a771kCy4wPnMF67u4mWwvQIo/IUBCrO+Xvr7vPVuwFyA1b/y6wA+8u1EBkNDZhhrr+6Zb48v/wOKj7sghXf5D3uMwvuSgKEDq2Lzv5WPvItax3/UdIPGQARJAuhQ/u6PZy9Kz3U5lL09Yf1RGBUC62C04QLoeIOlPy9LDB94XkHa6vu+01OUSpxWPACBd4KIJkFZfK+fFkfUdASSABJCwdFAfIYAEkC71H3Kx5afJj7pHIGE4EEACSACp8ZwnokkIASQEkM67uO/iGE2EEEACSEs/POs7Qggg7ZtJrOMIIQSQEEIIASSEEEIIICGEEAJICCGEEEBCCCEEkHgECCGEABJCCCEEkBBCCAEkhBBCCCAhhBACSAghhBBAQgghBJAQQgghgIQQQgggIYQQQgAJIYQQQEIIIYQAEkIIoT3qf8EH+l6la53LAAAAAElFTkSuQmCC\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":1305,"title":"Creation of 2D Sinc Surface","description":"This Challenge is to efficiently create the Sombrero function of various sizes, resolutions, and frequencies.\r\n\r\n\u003c\u003chttps://sites.google.com/site/razapor/matlab_cody/sinc64_3_1.png\u003e\u003e\r\n\r\n*Figure Example:* Freq=1; XY_max_value=3; Num Rows / Cols 64\r\n\r\nCreate the 2-D array m(row,col)=sin(pi*R*freq)/(pi*R*freq) where R is the distance from the center of the array. The array is [nrc,nrc] with X(1,1)=Y(1,1)= - xymax and X(nrc,nrc)=Y(nrc,nrc)=xymax.\r\n\r\n*Input:* [xymax,nrc,freq]\r\n\r\n*Output:* [m] an array of size(nrc,nrc) representing the sin(x)/x function\r\n\r\n*Hints:*\r\n\r\nMatlab provides excellent functions and array operators to readily create vectors and grids. [ linspace, meshgrid ]  \r\n\r\n*Future:*\r\n\r\nPolar grid creation to produce Zernike surfaces","description_html":"\u003cp\u003eThis Challenge is to efficiently create the Sombrero function of various sizes, resolutions, and frequencies.\u003c/p\u003e\u003cimg src = \"https://sites.google.com/site/razapor/matlab_cody/sinc64_3_1.png\"\u003e\u003cp\u003e\u003cb\u003eFigure Example:\u003c/b\u003e Freq=1; XY_max_value=3; Num Rows / Cols 64\u003c/p\u003e\u003cp\u003eCreate the 2-D array m(row,col)=sin(pi*R*freq)/(pi*R*freq) where R is the distance from the center of the array. The array is [nrc,nrc] with X(1,1)=Y(1,1)= - xymax and X(nrc,nrc)=Y(nrc,nrc)=xymax.\u003c/p\u003e\u003cp\u003e\u003cb\u003eInput:\u003c/b\u003e [xymax,nrc,freq]\u003c/p\u003e\u003cp\u003e\u003cb\u003eOutput:\u003c/b\u003e [m] an array of size(nrc,nrc) representing the sin(x)/x function\u003c/p\u003e\u003cp\u003e\u003cb\u003eHints:\u003c/b\u003e\u003c/p\u003e\u003cp\u003eMatlab provides excellent functions and array operators to readily create vectors and grids. [ linspace, meshgrid ]\u003c/p\u003e\u003cp\u003e\u003cb\u003eFuture:\u003c/b\u003e\u003c/p\u003e\u003cp\u003ePolar grid creation to produce Zernike surfaces\u003c/p\u003e","function_template":"function m=sinx_div_x(xymax,nrc,freq)\r\n m=zeros(nrc);","test_suite":"%%\r\nnrc=65;\r\nxymax=3;\r\nfreq=1;\r\n\r\nm=sinx_div_x(xymax,nrc,freq);\r\n\r\n%figure(3);imagesc(m)\r\n%figure(4);surf(m)\r\n\r\n xv=repmat(-xymax:2*xymax/(nrc-1):xymax,nrc,1);\r\n yv=xv';\r\n mexp=zeros(nrc);\r\n for r=1:nrc\r\n  for c=1:nrc\r\n  Rv=sqrt(xv(r,c)^2+yv(r,c)^2);\r\n  if Rv\u003eeps\r\n   mexp(r,c)=sin(Rv*pi*freq)/(Rv*pi*freq);\r\n  else\r\n   mexp(r,c)=1;\r\n  end\r\n  end % c\r\n end %r\r\n\r\n%figure(1);imagesc(mexp)\r\n%figure(2);surf(mexp)\r\n\r\nassert(~any(any(isnan(m))))\r\nassert(max(max(abs(m-mexp)))\u003c.01)\r\n\r\n%%\r\nnrc=127;\r\nxymax=3;\r\nfreq=4;\r\n\r\nm=sinx_div_x(xymax,nrc,freq);\r\n\r\n%figure(3);imagesc(m)\r\n%figure(4);surf(m)\r\n\r\n xv=repmat(-xymax:2*xymax/(nrc-1):xymax,nrc,1);\r\n yv=xv';\r\n mexp=zeros(nrc);\r\n for r=1:nrc\r\n  for c=1:nrc\r\n  Rv=sqrt(xv(r,c)^2+yv(r,c)^2);\r\n  if Rv\u003eeps\r\n   mexp(r,c)=sin(Rv*pi*freq)/(Rv*pi*freq);\r\n  else\r\n   mexp(r,c)=1;\r\n  end\r\n  end % c\r\n end %r\r\n\r\n%figure(1);imagesc(mexp)\r\n%figure(2);surf(mexp)\r\n\r\nassert(~any(any(isnan(m))))\r\nassert(max(max(abs(m-mexp)))\u003c.01)\r\n\r\n%%\r\nnrc=96;\r\nxymax=16;\r\nfreq=0.5;\r\n\r\nm=sinx_div_x(xymax,nrc,freq);\r\n\r\n%figure(3);imagesc(m)\r\n%figure(4);surf(m)\r\n\r\n xv=repmat(-xymax:2*xymax/(nrc-1):xymax,nrc,1);\r\n yv=xv';\r\n mexp=zeros(nrc);\r\n for r=1:nrc\r\n  for c=1:nrc\r\n  Rv=sqrt(xv(r,c)^2+yv(r,c)^2);\r\n  if Rv\u003eeps\r\n   mexp(r,c)=sin(Rv*pi*freq)/(Rv*pi*freq);\r\n  else\r\n   mexp(r,c)=1;\r\n  end\r\n  end % c\r\n end %r\r\n\r\n%figure(1);imagesc(mexp)\r\n%figure(2);surf(mexp)\r\n\r\nassert(~any(any(isnan(m))))\r\nassert(max(max(abs(m-mexp)))\u003c.01)\r\n\r\n\r\n\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":3097,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":"2013-03-01T06:34:16.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-02-28T03:54:48.000Z","updated_at":"2025-06-24T13:11:54.000Z","published_at":"2013-02-28T05:36:10.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis Challenge is to efficiently create the Sombrero function of various sizes, resolutions, and frequencies.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eFigure Example:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e Freq=1; XY_max_value=3; Num Rows / Cols 64\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCreate the 2-D array m(row,col)=sin(pi*R*freq)/(pi*R*freq) where R is the distance from the center of the array. The array is [nrc,nrc] with X(1,1)=Y(1,1)= - xymax and X(nrc,nrc)=Y(nrc,nrc)=xymax.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [xymax,nrc,freq]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e [m] an array of size(nrc,nrc) representing the sin(x)/x function\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eHints:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMatlab provides excellent functions and array operators to readily create vectors and grids. [ linspace, meshgrid ]\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eFuture:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePolar grid creation to produce Zernike surfaces\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\"}]}"}],"term":"tag:\"sinc\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"sinc\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"sinc\"","","\"","sinc","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f74bb075b48\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f74bb075aa8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f74bb0751e8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f74bb075dc8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f74bb075d28\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f74bb075c88\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f74bb075be8\u003e":"tag:\"sinc\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f74bb075be8\u003e":"tag:\"sinc\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"sinc\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"sinc\"","","\"","sinc","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f74bb075b48\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f74bb075aa8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f74bb0751e8\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f74bb075dc8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f74bb075d28\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f74bb075c88\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f74bb075be8\u003e":"tag:\"sinc\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f74bb075be8\u003e":"tag:\"sinc\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":1305,"difficulty_rating":"easy"}]}}