You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: gdsii_sierpinski.m
    path of file: ./repos/MatlabGDSPhotonicsToolbox/Functions/GDSII Library/Structures
    
    the code of the file until where you have to start completion: function [sf] = gdsii_sierpinski(tname, minel, maxel, ctrblk, pos, ang, layer);
%function [sf] = gdsii_sierpinski(tname, minel, maxel, ctrblk, pos, ang, layer);
%
% gdsii_sierpinski :  
%      returns a gds_structure object containing a Sierpinski
%      fractal composed of equilateral triangles. 
%
% tname :  (Optional) name of the top level structure. 
%          Default is SIERPINSKI_TOP.
% minel :  (Optional) length of the smallest (lowest level) 
%          triangle edge in user units. Default is 1.
% maxel :  (Optional) length of the largest triangle edge (top level) in
%          user units. Default is 10000. The pattern is built
%          up recursively from the smallest triangle. The smallest
%          edge length is therefore exact. The triangle is built up
%          until the edge length exceeds 'maxel';
% ctrblk : (Optional) when set to a value other than 0 the central
%          triangle will be black. Default is 0 (white center).
% pos :    (Optional) position of the left lower corner of the
%          pattern. Default is [0,0].
% ang :    (Optional) rotate the structure by an angle

    
function [sf] = gdsii_sierpinski(tname, minel, maxel, ctrblk, pos, ang, layer);
%function [sf] = gdsii_sierpinski(tname, minel, maxel, ctrblk, pos, ang, layer);
%
% gdsii_sierpinski :  
%      returns a gds_structure object containing a Sierpinski
%      fractal composed of equilateral triangles. 
%
% tname :  (Optional) name of the top level structure. 
%          Default is SIERPINSKI_TOP.
% minel :  (Optional) length of the smallest (lowest level) 
%          triangle edge in user units. Default is 1.
% maxel :  (Optional) length of the largest triangle edge (top level) in
%          user units. Default is 10000. The pattern is built
%          up recursively from the smallest triangle. The smallest
%          edge length is therefore exact. The triangle is built up
%          until the edge length exceeds 'maxel';
% ctrblk : (Optional) when set to a value other than 0 the central
%          triangle will be black. Default is 0 (white center).
% pos :    (Optional) position of the left lower corner of the
%          pattern. Default is [0,0].
% ang :    (Optional) rotate the structure by an angle
%          'ang' in radians. Default is 0 (no rotation). 
% layer :  (Optional) layer to which the pattern is
%          written. Default is 1.
%
% sf :     cell array of gds_structure objects.
%         

% initial version: Ulf Griesmann, NIST, Feb 2011
% return gds_structure objects; U.G., NIST, November 2012
%

% check arguments
if nargin < 7, layer = []; end